Étape 9: Super plombier minuteur Pomodoro Code !
#include « msp430g2211.h » #include « notes.h » unsigned int clics = 0 ; #define LED4 BIT1 void setLEDs (valeur char) {} 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 ; Arrêter le temporisateur pour empêcher la réinitialisation du délai d’expiration BCSCTL1 = CALBC1_1MHZ ; La valeur DCO valeur de calibrage d’usine 1MHz P1DIR | = (LED0 + LED1 LED2 + DEL3 + LED4 + BUZZER + PUISSANCE) ; toutes les broches de la LED et buzzer comme sortie CCTL0 = CCIE ; Interruption de CCR0 activée setLEDs(pomodoro_remain) ; {while(pomodoro_remain)} play1up() ; carillon final } Routine de service de minuteur A0 interruption |
Notes.h
Cela ne devrait pas être ici, mais j’étais pressé de présenter avant le concours délai manqué:) #define BUZZER BIT6 Définition de frequecies les notes en 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
Sub delay_ms (ms unsigned int) {}
unsigned int i ;
pour (i = 0; i < = ms; i ++)
__delay_cycles(1000) ;
}
void delay_us (unsigned int nous) {}
unsigned int i ;
pour (i = 0; i < = nous; i ++)
__delay_cycles(1) ;
}
Cette fonction génère l’onde carrée qui rend le haut-parleur piézo acoustique à une fréquence déterminée.
{} void bip (unsigned int note, longue durée)
retard = (long)(62500/note) ; Il s’agit de la semiperiod de chaque note.
longtemps = (long)((duration*100)/delay) ; C’est combien de temps nous devons consacrer sur la note.
pour (longtemps j’ai = 0; i < temps; i ++) {}
P1OUT | = SONNERIE ; Jeu de sirène sur...
delay_us(Delay) ; .. .pour une semiperiod...
P1OUT & = ~ BUZZER ; .. .alors le réinitialiser...
delay_us(Delay) ; .. .pour l’autre semiperiod.
}
}
void playTheme(void) {}
Thème
4|ee-e-ce-g---|| c---e-GA-FG-e-CD---||
//3|-------------g----|| ---g--e--a-b-AA-g---b---||
//2|-------------g----|| ---------------------------------||
bip (E4, 124) ; bip (E4, 124) ; delay_ms(124) ;
bip (E4, 124) ; delay_ms(124) ;
bip (C4, 124) ; bip (E4, 124) ; delay_ms(124) ;
bip (G4, 124) ; delay_ms(496) ;
bip (G3, 124) ; delay_ms(496) ;
bip (C4, 124) ; delay_ms(248) ;
bip (G3, 124) ; delay_ms(248) ;
bip (E3, 124) ; delay_ms(248) ;
bip (A3, 124) ; delay_ms(124) ;
bip (B3, 124) ; delay_ms(124) ;
bip (As3, 124) ; bip (A3, 124) ; delay_ms(124) ;
bip (G3, 124) ; bip (E4, 124) ; delay_ms(124) ;
bip (G4, 124) ; bip (A4, 124) ; delay_ms(124) ;
bip (F4, 124) ; bip (G4, 124) ; delay_ms(124) ;
bip (E4, 124) ; delay_ms(124) ;
bip (C4, 124) ; bip (D4, 124) ; bip (B4, 124) ;
sonne mieux sans la dernière ligne, sauf en boucle
}
void play1up(void) {}
1UP sound
bip (E5, 62) ; delay_ms(62) ;
bip (G5, 62) ; delay_ms(62) ;
bip (E6, 62) ; delay_ms(62) ;
bip (C6, 62) ; delay_ms(62) ;
bip (D6, 62) ; delay_ms(62) ;
bip (G6, 312) ;
}
void playFlagTune (void) {}
drapeau *
bip (G2, 124) ;
bip (C3, 124) ;
bip (E3, 124) ;
bip (G3, 124) ;
bip (C4, 124) ;
bip (E4, 124) ;
bip (G4, 372) ;
bip (E4, 372) ;
bip (Gs2, 124) ;
bip (C3, 124) ;
bip (Ds3, 124) ;
bip (Gs3, 124) ;
bip (C4, 124) ;
bip (Ds4, 124) ;
bip (Gs4, 372) ;
bip (Ds4, 372) ;
bip (As2, 124) ;
bip (D3, 124) ;
bip (F3, 124) ;
bip (As3, 124) ;
bip (D4, 124) ;
bip (F4, 124) ;
bip (CC4, 372) ;
bip (CC4, 124) ;
bip (CC4, 124) ;
bip (CC4, 124) ;
bip (E4, 372) ;
}