Ich denke, die Odometriesensoren und die Liniensensoren arbeiten Frequenzmoduliert?
Dann muss man ja auch dafür irgendwo einen Takt hernehmen...
delay() beeinflussen die Einstellungen des Timers0 übrigens offenbar nicht, habs gerade mal mit nem anderen Prescaler-Wert probiert:
Code:
// LED3 ansteuern mit Timer 0 14.3.2010 mic
#include <nibobee/iodefs.h>
#include <nibobee/led.h>
#include <nibobee/delay.h>
//#include <avr/interrupt.h>
int main(void)
{
TCCR0 = (1<<CS02)| (1<<CS00); // Normal Mode, kein OC0-Pin, prescaler /1024
TIMSK |= (1<<TOIE0); // Timer0 Overflow-Interrupt erlauben
enable_interrupts();
led_init();
while(1)
{ // LED 2 u.3 treiben ihr eigenes Spiel
int ledNr;
led_set(ledNr,0);
delay(100);
for (ledNr=1;ledNr<3;ledNr++)
{
led_set(ledNr,1);
delay(50);
}
delay(50);
for (ledNr=2;ledNr>1;ledNr--)
{
led_set(ledNr,0);
delay(50);
}
}
}
ISR(TIMER0_OVF_vect)
{
static uint8_t count=0;
count++;
if(count == 57)
{
led_set(LED_R_YE,1); // LED an
led_set(LED_L_YE,1);
}
if(count > 2*57)
{
led_set(LED_R_YE,0); // LED aus
led_set(LED_L_YE,0);
count=0;
}
}
Lesezeichen