Stap 9: Super loodgieter Pomodoro-Timer Code!
#include "msp430g2211.h" #include "notes.h" unsigned int klikken = 0; #define LED4 bits1 VOID setLEDs (char waarde) {} if(Value & 0x08) if(Value & 0x04) if(Value & 0x02) if(Value & 0x01) void main (void) {} unsigned int pomodoro_remain = pomodoro_length + pomodoro_break; WDTCTL = WDTPW + WDTHOLD; Watchdog-timer om te voorkomen dat de time-out reset stoppen BCSCTL1 = CALBC1_1MHZ; DCO ingesteld op 1MHz fabriek kalibratie waarde P1DIR | = (LED0 + LED1 LED2 + LED3 + LED4 + BUZZER + POWER); alle LED pinnen en zoemer als output CCTL0 = CCIE; CCR0 interrupt ingeschakeld setLEDs(pomodoro_remain); while(pomodoro_remain) {} play1up(); definitieve klokkenspel } Timer A0 interrupt service routine |
Notes.h
Dit moet niet hier, maar ik was in een haast om te dienen vóór de wedstrijd liep termijn uit :) #define ZOEMER BIT6 Definitie van de toelichting frequecies in Hertz. |
#define B3 247
#define As3 233
#define A3 220
#define Gs3 208
#define G3 196
#define Fs3 185
#define F3 175
#define E3 165
#define Ds3 156
#define D3 147
#define Cs3 139
#define C3 131
#define B2 123
#define As2 117
#define A2 110
#define Gs2 104
#define G2 98
#define Fs2 92
#define F2 87
#define E2 82
#define Ds2 78
#define D2 73
#define Cs2 69
#define C2 65
#define B1 62
#define As1 58
#define A1 55
#define Gs1 52
#define G1 49
#define Fs1 46
#define F1 44
#define E1 41
#define Ds1 39
#define D1 37
#define Cs1 35
#define C1 33
#define B0 31
#define As0 29
#define A0 28
VOID delay_ms (unsigned int ms) {}
unsigned int i;
voor (ik = 0; ik < = ms; i ++)
__delay_cycles(1000);
}
VOID delay_us (unsigned int ons) {}
unsigned int i;
voor (ik = 0; ik < = us; i ++)
__delay_cycles(1);
}
Deze functie genereert de blokgolf, waardoor de piëzo-luidspreker geluid op een bepaalde frequentie.
VOID pieptoon (unsigned int opmerking, lange duur) {}
lang uitstellen = (long)(62500/note); Dit is de semiperiod van elke noot.
lange tijd = (long)((duration*100)/delay); Dit is hoeveel tijd we nodig hebben om te besteden aan de notitie.
voor (lang ik = 0; ik < tijd; i ++) {}
P1OUT | = ZOEMER; Set zoemer op...
delay_us(delay); .. .voor een semiperiod...
P1OUT & = ~ ZOEMER; .. .en resetten...
delay_us(delay); .. .voor de andere semiperiod.
}
}
ongeldig playTheme(void) {}
thema
4|ee-e-ce-g---|| c---e-ga-FG-e-cd---||
//3|-------------g----|| ---g--e--a-b-AA-g---b---||
//2|-------------g----|| ---------------------------------||
pieptoon (E4, 124); pieptoon (E4, 124); delay_ms(124);
pieptoon (E4, 124); delay_ms(124);
pieptoon (C4, 124); pieptoon (E4, 124); delay_ms(124);
pieptoon (G4, 124); delay_ms(496);
pieptoon (G3, 124); delay_ms(496);
pieptoon (C4, 124); delay_ms(248);
pieptoon (G3, 124); delay_ms(248);
pieptoon (E3, 124); delay_ms(248);
pieptoon (A3, 124); delay_ms(124);
pieptoon (B3, 124); delay_ms(124);
pieptoon (As3, 124); pieptoon (A3, 124); delay_ms(124);
pieptoon (G3, 124); pieptoon (E4, 124); delay_ms(124);
pieptoon (G4, 124); pieptoon (A4, 124); delay_ms(124);
pieptoon (F4, 124); pieptoon (G4, 124); delay_ms(124);
pieptoon (E4, 124); delay_ms(124);
pieptoon (C4, 124); pieptoon (D4, 124); pieptoon (B4, 124);
klinkt beter zonder de laatste regel tenzij lus
}
ongeldig play1up(void) {}
1UP geluid
pieptoon (E5, 62); delay_ms(62);
pieptoon (G5, 62); delay_ms(62);
pieptoon (E6, 62); delay_ms(62);
pieptoon (C6, 62); delay_ms(62);
pieptoon (D6, 62); delay_ms(62);
pieptoon (G6, 312);
}
VOID playFlagTune (void) {}
vlag *
pieptoon (G2, 124);
pieptoon (C3, 124);
pieptoon (E3, 124);
pieptoon (G3, 124);
pieptoon (C4, 124);
pieptoon (E4, 124);
pieptoon (G4, 372);
pieptoon (E4, 372);
pieptoon (Gs2, 124);
pieptoon (C3, 124);
pieptoon (Ds3, 124);
pieptoon (Gs3, 124);
pieptoon (C4, 124);
pieptoon (Ds4, 124);
pieptoon (Gs4, 372);
pieptoon (Ds4, 372);
pieptoon (As2, 124);
pieptoon (D3, 124);
pieptoon (F3, 124);
pieptoon (As3, 124);
pieptoon (D4, 124);
pieptoon (F4, 124);
Beep (As4, 372);
Beep (As4, 124);
Beep (As4, 124);
Beep (As4, 124);
pieptoon (E4, 372);
}