Vi försöker köra timer0 i overflow och timer1 som ICP och med overflow. Vad vi fått för oss bör TIMSK då ha värdet 0x25 men då vill inte timer0 köra överhuvudtaget.
Programmen fungerar var för sig klockrent.
Då är TIMSK 0x01 för timer0-programmet och
0x24 för timer1-programmet.
Någon idé om vad som strular?
TIMSK i mega16*löst*
// Timer/Counter 0 initialization
// Clock source: System Clock / 1024
// Clock value: Timer 0
// Mode: Normal top=FFh
// OC0 output: Toggle on compare match
TCCR0=0x05; // system clock..
TCNT0 = TIMER_INIT; // inital value
OCR0=0x00; // no output
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 500.000 kHz
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: On
// Input Capture Interrupt: On
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x01;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x25; //???????????????
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
PORTB = 0xFF;
//remote_mode_run();
//engine_mode(1);
}
PORTB är konfiguread som utgång men ledsen som den är kopplad till släcks inte.
// Clock source: System Clock / 1024
// Clock value: Timer 0
// Mode: Normal top=FFh
// OC0 output: Toggle on compare match
TCCR0=0x05; // system clock..
TCNT0 = TIMER_INIT; // inital value
OCR0=0x00; // no output
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 500.000 kHz
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: On
// Input Capture Interrupt: On
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x01;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x25; //???????????????
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
PORTB = 0xFF;
//remote_mode_run();
//engine_mode(1);
}
PORTB är konfiguread som utgång men ledsen som den är kopplad till släcks inte.
Koden är inte komplett, åtminstone finns inte felkällan med som jag ser det. Vad som saknas är dom andra två ISR:erna, och förhoppningsvis en sei(); nånstans. Det som finns ser korrekt ut åtminstone vid första anblick för mig.
Edit: Dock är jag obekant med den kompilator det verkar gälla, så nån annan får kommentera om ISR:en som finns med deklareras på rätt sätt.
Edit: Dock är jag obekant med den kompilator det verkar gälla, så nån annan får kommentera om ISR:en som finns med deklareras på rätt sätt.