hallo leute,
ich habe an meinem controller ein display, welches ich durch lcd_init zu
beginn der main routine initialisiere.
die entsprechenden lcd h- und c-dateien habe ich eingebunden.
das problem: an sich funktioniert das lcd, jedoch nur, wenn man nach
einschalten des controllers diesen resettet. danach geht alles super.
vorher zeigt er nur weiße balken an.
hier mein code:
1 | #define F_CPU 8000000
|
2 | #define BAUD 9600
|
3 |
|
4 | // BIBLITOTHEKEN
|
5 | #include <avr/io.h>
|
6 | #include <util/delay.h>
|
7 | #include "lcd-routines_2560.h"
|
8 | #include <stdlib.h>
|
9 | #include <stdio.h>
|
10 | #include <avr/interrupt.h>
|
11 | #include <math.h>
|
12 |
|
13 | // Interrupt
|
14 | ISR(TIMER2_OVF_vect)
|
15 | {
|
16 | // Berechnungen ...
|
17 |
|
18 | }
|
19 |
|
20 | int main(void)
|
21 | {
|
22 |
|
23 | lcd_init();
|
24 | lcd_clear();
|
25 | _delay_ms(500);
|
26 | lcd_setcursor(0,1);
|
27 | lcd_string("Willkommen!");
|
28 | lcd_setcursor(0,2);
|
29 | lcd_string("LCD-");
|
30 | lcd_setcursor(0,3);
|
31 | lcd_string("Display");
|
32 | _delay_ms(2000);
|
33 | lcd_clear();
|
34 |
|
35 |
|
36 | // INTERRUPT:
|
37 | TIMSK2 = (1<<TOIE2);
|
38 | TCCR2B = (1<<CS21) | (1<<CS20);
|
39 | sei();
|
40 |
|
41 | while(1)
|
42 | {
|
43 | // ...
|
44 | }
|
45 |
|
46 | }
|
wisst ihr, was falsch sein kann?