Hall, ich habe zurzeit Probleme mit diesem Quelltext. Der Int geht aber das lcd nicht, er geht einfach nicht in die LCDuhr() Fkt wenn ich aber jetzt den Timer auskommentiere dann geht das lcd wie gewollt, ich versehe das nicht. Das lcd ist an portb und der timer an portd
1 | #define F_CPU 16000000L
|
2 | |
3 | |
4 | #include <avr/io.h> |
5 | #include <util/delay.h> |
6 | |
7 | #include <avr/interrupt.h> |
8 | #include "lcd-routines.h" |
9 | #include "lcd-routines.c.h" |
10 | #include <stdlib.h> |
11 | |
12 | |
13 | int sekunde,stunde,minute=0; |
14 | |
15 | char Buffer[10]; |
16 | |
17 | int i=1; |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | int main(void){ |
24 | |
25 | DDRB=0xFF; |
26 | DDRA=0b11111000; |
27 | |
28 | DDRC=0xFF; |
29 | |
30 | DDRD=0xFF; |
31 | |
32 | |
33 | |
34 | |
35 | //Timer 0 8 bit
|
36 | TCCR0 = TCCR0 | ( 1 << CS00 ); // Teiler: 1024 |
37 | TIMSK = ( 1 << TOIE0 ); // Overflow Interrupt einschalten |
38 | //__________________________________________________________________________
|
39 | sei(); |
40 | |
41 | |
42 | for(;;){ |
43 | LCDuhr();} |
44 | }
|
45 | |
46 | void LCDuhr(){ |
47 | sekunde++; |
48 | set_cursor(13,1); |
49 | itoa( sekunde, Buffer, 10 ); |
50 | lcd_string( Buffer ); |
51 | set_cursor(9,1); |
52 | itoa( minute, Buffer, 10 ); |
53 | lcd_string( Buffer ); |
54 | set_cursor(7,1); |
55 | itoa( stunde, Buffer, 10 ); |
56 | lcd_string( Buffer ); |
57 | |
58 | set_cursor(0,1); |
59 | lcd_string("Zeit:"); |
60 | }
|
61 | |
62 | |
63 | |
64 | ISR(TIMER0_OVF_vect ) |
65 | { PORTD^=(1<<PD2); |
66 | _delay_ms(200); |
67 | }
|