Also im mom komm ich bei meinem Programm einfach nicht weiter... Hier mal der Betreffende teil.... // Timer-Interrupt ISR(TIMER0_OVF_vect) { // save(ADCL, ADCH); // Speichern test(0xff, 0xff); TCNT0 = TCNT0 + ZAEHL; // Zähler neusetzen } In main(): // Timer initsalisierung ausg(BOOT_timer_init); TCCR0 = 0x1; // Teiler 0 TIMSK = 0x2; // Timer0 Interrupt frei TCNT0 = ZAEHL; // Startwert setzen sei(); ________________________ Also die Initsialisierung wird ohne Probleme durchlaufen. Aber der Timer-Interrupt wird nie Ausgelöst. Was hab ich falsch gemacht?
Bei dem Code fehlen sowohl ein paar Zeilen als auch Infos, um welchen AVR es eigentlich geht. Ich kann das so nicht mit einem Datenblatt vergleichen, auch nicht übersetzen, geschweige denn im Simulator nachsehen, ob ich das Problem wenigstens reproduzieren kann. Sorry.
huch srr ganz vergessen also es geht um nen atmega8 ich weis nich... soll ich den ganzen code hochladen oder was fehlt?
Was Timer oder Interrupt angeht gibts da keine code zeiln mehr... vllt liegt da mein fehler?
TIMSK ist falsch gesetzt. Das funktioniert in der Simulation:
1 | //
|
2 | // Atmega8
|
3 | // OPtimierung -O0 (keine)
|
4 | // F_CPU 4000000
|
5 | //
|
6 | #include <avr/io.h> |
7 | #include <avr/interrupt.h> |
8 | |
9 | #define ZAEHL 42
|
10 | |
11 | static void test(unsigned char dick, unsigned char doof) |
12 | {
|
13 | DDRB = dick; |
14 | PORTB ^= doof; |
15 | }
|
16 | |
17 | // Timer-Interrupt
|
18 | ISR(TIMER0_OVF_vect) |
19 | {
|
20 | test(0xff, 0xff); |
21 | TCNT0 = TCNT0 + ZAEHL; // Zähler neusetzen |
22 | }
|
23 | |
24 | int main(void) |
25 | {
|
26 | |
27 | TCCR0 = (1<<CS00); // Teiler 1 (no prescaling) Table 34 Datenblatt |
28 | TIMSK = (1<<TOIE0); // Timer0 Overflow Interrupt frei |
29 | TCNT0 = ZAEHL; // Startwert setzen |
30 | |
31 | sei(); |
32 | |
33 | while(1); |
34 | }
|
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.