Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

use many function in MikroC pro

Status
Not open for further replies.

Fatima Zahra Serji

Newbie level 4
Joined
Sep 8, 2013
Messages
5
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
46
hello every one;

i am working with pic 16F876A at mikroC pro...i would like to use many function in my program (main,interrupt,calculate)

i put my program of keypad in function main and i want to displaye on the LCD the value calculated by function calcule; so when i try to call function calculate inside function main and go to simulate my program in ISIS nothing work all seem blocked lcd and keypad i don't know why

Also when i put the program function calculate inside main i got message by complier saying "there is not enough ROM space and adress must be greater then main"

so can any one give me an answer or idea why my program is not working when i try to call other function i declarated !!!
 

surely you are taking a lot program memory,
first of all reduce the program size

Here is an ultimate optimization your all the If conditions


Code C - [expand]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
if(ID_microT[1]== 48){
                       if( ID_microT[2]==49) id=0x1;
                       if( ID_microT[2]==50) id=0x2;
                       if( ID_microT[2]==51) id=0x3;
                       if( ID_microT[2]==52) id=0x4;
                       if( ID_microT[2]==53) id=0x5;
                       if( ID_microT[2]==54) id=0x6;
                       if( ID_microT[2]==55) id=0x7;
                       if( ID_microT[2]==56) id=0x8;
                       if( ID_microT[2]==57) id=0x9;
                       }
if(ID_microT[1]== 49){ if( ID_microT[2]==48) id=0xA;
                       if( ID_microT[2]==49) id=0xB;
                       if( ID_microT[2]==50) id=0xC;
                       if( ID_microT[2]==51) id=0xD;
                       if( ID_microT[2]==52) id=0xE;
                       if( ID_microT[2]==53) id=0xF;
                       if( ID_microT[2]==54) id=0x10;
                       if( ID_microT[2]==55) id=0x11;
                       if( ID_microT[2]==56) id=0x12;
                       if( ID_microT[2]==57) id=0x13;
                       }
if(ID_microT[1]== 50){ if( ID_microT[2]==48) id=0x14;
                       if( ID_microT[2]==49) id=0x15;
                       if( ID_microT[2]==50) id=0x16;
                       if( ID_microT[2]==51) id=0x17;
                       if( ID_microT[2]==52) id=0x18;
                       if( ID_microT[2]==53) id=0x19;
                       if( ID_microT[2]==54)  id=0x1A;
                       if( ID_microT[2]==55) id=0x1B;
                       if( ID_microT[2]==56) id=0x1C;
                       if( ID_microT[2]==57) id=0x1D;
                       }
if(ID_microT[1]== 51){ if( ID_microT[2]==48) id=0x1E;
                       if( ID_microT[2]==49) id=0x1F;
                       if( ID_microT[2]==50) id=0x20;
                       if( ID_microT[2]==51) id=0x21;
                       if( ID_microT[2]==52) id=0x22;
                       if( ID_microT[2]==53) id=0x23;
                       if( ID_microT[2]==54)  id=0x24;
                       if( ID_microT[2]==55) id=0x25;
                       if( ID_microT[2]==56) id=0x26;
                       if( ID_microT[2]==57) id=0x27;
                       }
if(ID_microT[1]== 52){ if( ID_microT[2]==48) id=0x28;
                       if( ID_microT[2]==49) id=0x29;
                       if( ID_microT[2]==50) id=0x2A;
                       if( ID_microT[2]==51) id=0x2B;
                       if( ID_microT[2]==52) id=0x2C;
                       if( ID_microT[2]==53) id=0x2D;
                       if( ID_microT[2]==54)  id=0x2E;
                       if( ID_microT[2]==55) id=0x2F;
                       if( ID_microT[2]==56) id=0x30;
                       if( ID_microT[2]==57) id=0x31;
                       }
if(ID_microT[1]== 53){ if( ID_microT[2]==48) id=0x32;
                       if( ID_microT[2]==49) id=0x33;
                       if( ID_microT[2]==50) id=0x34;
                       if( ID_microT[2]==51) id=0x35;
                       if( ID_microT[2]==52) id=0x36;
                       if( ID_microT[2]==53) id=0x37;
                       if( ID_microT[2]==54)  id=0x38;
                       if( ID_microT[2]==55) id=0x39;
                       if( ID_microT[2]==56) id=0x3A;
                       if( ID_microT[2]==57) id=0x3B;
                       }
if(ID_microT[1]== 54){ if( ID_microT[2]==48) id=0x3C;
                       if( ID_microT[2]==49) id=0x3D;
                       if( ID_microT[2]==50) id=0x3E;
                       if( ID_microT[2]==51) id=0x3F;
                       if( ID_microT[2]==52) id=0x40;
                       if( ID_microT[2]==53) id=0x41;
                       if( ID_microT[2]==54)  id=0x42;
                       if( ID_microT[2]==55) id=0x43;
                       if( ID_microT[2]==56) id=0x44;
                       if( ID_microT[2]==57) id=0x45;
                       }
if(ID_microT[1]== 55){ if( ID_microT[2]==48) id=0x46;
                       if( ID_microT[2]==49) id=0x47;
                       if( ID_microT[2]==50) id=0x48;
                       if( ID_microT[2]==51) id=0x49;
                       if( ID_microT[2]==52) id=0x4A;
                       if( ID_microT[2]==53) id=0x4B;
                       if( ID_microT[2]==54)  id=0x4C;
                       if( ID_microT[2]==55) id=0x4D;
                       if( ID_microT[2]==56) id=0x4E;
                       if( ID_microT[2]==57) id=0x4F;
                       }
if(ID_microT[1]== 56){ if( ID_microT[2]==48) id=0x50;
                       if( ID_microT[2]==49) id=0x51;
                       if( ID_microT[2]==50) id=0x52;
                       if( ID_microT[2]==51) id=0x53;
                       if( ID_microT[2]==52) id=0x54;
                       if( ID_microT[2]==53) id=0x55;
                       if( ID_microT[2]==54)  id=0x56;
                       if( ID_microT[2]==55) id=0x57;
                       if( ID_microT[2]==56) id=0x58;
                       if( ID_microT[2]==57) id=0x59;
                       }
if(ID_microT[1]== 57){ if( ID_microT[2]==48) id=0x5A;
                       if( ID_microT[2]==49) id=0x5B;
                       if( ID_microT[2]==50) id=0x5C;
                       if( ID_microT[2]==51) id=0x5D;
                       if( ID_microT[2]==52) id=0x5E;
                       if( ID_microT[2]==53) id=0x5F;
                       if( ID_microT[2]==54) id=0x60;
                       if( ID_microT[2]==55) id=0x61;
                       if( ID_microT[2]==56) id=0x62;
                       if( ID_microT[2]==57) id=0x63;
                       }



can be replaced by


Code C - [expand]
1
id= (ID_microT[2] - 48) + ( (ID_microT[1] - 48) * 10 );

 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top