summaryrefslogtreecommitdiffstats
path: root/avr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'avr.cpp')
-rw-r--r--avr.cpp20
1 files changed, 18 insertions, 2 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;
}