Ich habe jetzt auch mal auf dem UART geschaut was dort ankommt.
Also die Daten kommen richtig am UART an!
@Peter:
Ich habe einen "Vergleichstimer", der wie folgt aufgebaut ist:
Ich habe eine 8MHz CLK, daher lasse ich den Timer bis 80 Zählen, dann
soll in Interrupt ausgelöst werden (also 8MHz/80Schritte = 100kHz)
Ich kann aber max. bis 255 Schritte vergleichen, daher funktioniert
deine Idee mit dem "alle 10ms" ausführen leider nicht.
Da ich den Counter auch noch für andere Zwecke nutzen möchte, muss
dieser min. alle 1ms ausgelöst werden.
Wie kann ich den Counter "langsamer" machen, so das meine Reccursen
nicht so ausgelastet werden.
1 | void init_timer()
|
2 | {
|
3 | hundert_taus_sek=0;
|
4 | zehn_taus_sek=0;
|
5 | millisekunden=0;
|
6 | hundert_sek=0;
|
7 | zehntel_sek=0;
|
8 | sekunde=0;
|
9 |
|
10 | TCCR0A =(1<<WGM01)|(1<<CS00); // CTC-> Clear Timer on Comparematch, Prescaler off
|
11 | OCR0A= 0x50; //bis 80 Zählen ->100kHz (8MHz CLK)
|
12 |
|
13 |
|
14 | TIMSK0 |= (1<<OCIE0A); //Compare Interrupt aktivieren
|
15 | }
|
16 |
|
17 |
|
18 | ISR(TIMER0_COMP_vect)
|
19 | {
|
20 | hundert_taus_sek++;
|
21 | if(hundert_taus_sek==10)
|
22 | {
|
23 | zehn_taus_sek++;
|
24 | hundert_taus_sek=0;
|
25 |
|
26 | if( delay_count > 0 ) // Nachrichtenverzögerung (1/10ms)
|
27 | {
|
28 | delay_count--;
|
29 | }
|
30 |
|
31 | if(zehn_taus_sek==10)
|
32 | {
|
33 | PORTA ^= (1<<PA0); //**********DEBUGG LED********+
|
34 | millisekunden++;
|
35 |
|
36 | zehn_taus_sek=0;
|
37 | if(millisekunden==10)
|
38 | {
|
39 | millisekunden=0;
|
40 | hundert_sek++;
|
41 | PORTA ^= (1<<PA2); //**********DEBUGG LED********+
|
42 | if(hundert_sek==10)
|
43 | {
|
44 | hundert_sek=0;
|
45 | zehntel_sek++;
|
46 | PORTA ^= (1<<PA4); //**********DEBUGG LED********+
|
47 | if(zehntel_sek==10)
|
48 | {
|
49 | zehntel_sek=0;
|
50 | sekunde++;
|
51 | PORTA ^= (1<<PA6); //**********DEBUGG LED********+
|
52 |
|
53 | trigger_time++;
|
54 | if(sekunde == 43200) //12 Stunden
|
55 | {
|
56 | modus=3;
|
57 | new_file=1;
|
58 | sekunde=0;
|
59 | trigger_time=0;
|
60 | }
|
61 | }
|
62 | }
|
63 | }
|
64 | }
|
65 | }
|
66 | }
|