From 625226774309d4efef855fef759f1da4bc07c0db Mon Sep 17 00:00:00 2001 From: neoraider Date: Thu, 19 Apr 2007 00:12:03 +0000 Subject: LED eingebaut. --- avr.cpp | 20 ++++++++++++++++++-- avr.h | 3 +++ hardware.cpp | 2 +- main.cpp | 8 +++++++- 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/avr.cpp b/avr.cpp index cd528ba..585dc7d 100644 --- a/avr.cpp +++ b/avr.cpp @@ -19,13 +19,21 @@ int getButton() { } void waitForButton(int i) { - while(getButton() != CLAMP(0, i, 5)); + if(i <= 0) while(getButton() == 0); + else while(getButton() != CLAMP(1, i, 5)); + while(getButton() != 0); } void beep(unsigned long freq) { const int prescalers[7] = {1, 8, 32, 64, 128, 256, 1024}; + if(freq == 0) { + beepOff(); + return; + } + + for(int i = 0; i < 7; i++) { if(F_CPU/freq/2/prescalers[i] <= 256) { TCCR2 = (TCCR2&~0x07)|(i+1); @@ -39,5 +47,13 @@ void beep(unsigned long freq) { } void beepOff() { - TCCR2 &= ~0x07; + TCCR2 &= ~0x07; +} + +void ledOn() { + PORTA &= ~0x20; +} + +void ledOff() { + PORTA |= 0x20; } diff --git a/avr.h b/avr.h index 851f1ff..2925bec 100644 --- a/avr.h +++ b/avr.h @@ -10,4 +10,7 @@ void waitForButton(int i); void beep(unsigned long freq); void beepOff(); +void ledOn(); +void ledOff(); + #endif diff --git a/hardware.cpp b/hardware.cpp index e652dda..8e25854 100644 --- a/hardware.cpp +++ b/hardware.cpp @@ -8,7 +8,7 @@ void initHardware() { - DDRA = 0x00; + DDRA = 0x20; PORTA = 0xFF; DDRB = 0xFF; diff --git a/main.cpp b/main.cpp index 8fc011b..cc71d55 100644 --- a/main.cpp +++ b/main.cpp @@ -48,10 +48,16 @@ int main() { Srf10 *srf10Last = srf10Left; - do { + do { lineSensorArray->update(); } while(!lineSensorArray->calibrate()); + ledOn(); + waitForButton(0); + ledOff(); + + sleep(4000); + navigation->setSpeed(DEFAULT_SPEED); while(true) { -- cgit v1.2.3