Hallo,
ich möchte gerne einen Wert aus einem Interrupt an meine "main()"
übergeben,
also habe ich eine globale Variable angelegt "unsigned int coutn=0;". In
dem interrupt wird einfach "++count;" ausgeführt aber wenn ich count
dann im main benutzen will ist sie immer 0. ich habs auch schon mit
"volatile unsigned int count=0;" versucht aber hat sich auch nichts
geändert.
Ich hoffe ihr könnt mir Helfen!
1 | volatile unsigned int count=0;
|
2 |
|
3 | int interrupt ISR (void)
|
4 | {
|
5 | if(TMR1IF==1)
|
6 | {
|
7 | count++;
|
8 |
|
9 | TMR1IF= 0;
|
10 | TMR1H = 0x00;
|
11 | TMR1L = 0x00;
|
12 | return;
|
13 | }
|
14 | }
|
15 |
|
16 |
|
17 | //-------------------------------------------------------------------------
|
18 | //Main
|
19 | //-------------------------------------------------------------------------
|
20 | main()
|
21 | {
|
22 | init();
|
23 | lcd_init();
|
24 | ADCON0=0;
|
25 | GIE=1;
|
26 | TMR1IE=1;
|
27 | TMR1IF=0;
|
28 | TMR1H=0;
|
29 | TMR1L=0;
|
30 | T1CON=0x01;
|
31 | INTCON=0xC0;
|
32 | int x;
|
33 | char text[]="";
|
34 | while(1)
|
35 | {
|
36 | x=keyscan();
|
37 |
|
38 | if(x!=0)
|
39 | {
|
40 | lcd_clear();
|
41 | }
|
42 | sprintf(text,"%i",count);
|
43 | lcd_goto(0);
|
44 | lcd_puts(text);
|
45 | }
|
46 | }
|