Paso 9: Fontanero Super cronómetro Pomodoro código!
#include "msp430g2211.h" #include "notes.h" unsigned int clics = 0; #define LED4 albañilería1 void setLEDs (valor char) {} if(Value & 0x08) if(Value & 0x04) if(Value & 0x02) if(Value & 0x01) anular principal (void) {} unsigned int pomodoro_remain = pomodoro_length + pomodoro_break; WDTCTL = WDTPW + WDTHOLD; Pare temporizador de vigilancia para evitar reinicio de tiempo BCSCTL1 = CALBC1_1MHZ; Establecer DCO a valor de calibración de fábrica de 1MHz P1DIR | = (LED0 LED1 LED2 + LED3 + LED4 + ZUMBADOR + POTENCIA); todos los pines del LED y zumbador como salida CCTL0 = CCIE; CCR0 interrupción habilitada setLEDs(pomodoro_remain); {while(pomodoro_remain)} play1up(); campana final } Rutina de servicio de interrupción de A0 de temporizador |
Notes.h
Esto no debería estar aquí, pero estaba apurado a presentar antes del concurso plazo funcionó hacia fuera :) #define zumbador BIT6 Definición de frequecies las notas 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
{} void delay_ms (unsigned int ms)
unsigned int i;
para (i = 0; i < = ms; i ++)
__delay_cycles(1000);
}
void delay_us (unsigned int nos) {}
unsigned int i;
para (i = 0; i < =; i ++)
__delay_cycles(1);
}
Esta función genera la onda cuadrada que hace el altavoz piezo con una frecuencia determinada.
{} void beep (unsigned int nota, larga duración)
largo retardo = (long)(62500/note); Esta es la semiperiod de cada nota.
largo plazo = (long)((duration*100)/delay); Se trata de cuánto tiempo tenemos que pasar en la nota.
para (largo i = 0; i < tiempo; i ++) {}
P1OUT | = ZUMBADOR; Zumbador set en...
delay_us(Delay); .. .para un semiperiod...
P1OUT & = ~ zumbador; .. .a continuación reiniciarlo...
delay_us(Delay); .. .para el otro semiperiod.
}
}
void playTheme(void) {}
tema
4|EE-e-ce-g---|| c---e-GA-FG-e-CD---||
//3|-------------g----|| ---g--e--a-b-AA-g---b---||
//2|-------------g----|| ---------------------------------||
pitido (E4, 124); pitido (E4, 124); delay_ms(124);
pitido (E4, 124); delay_ms(124);
pitido (C4, 124); pitido (E4, 124); delay_ms(124);
pitido (G4, 124); delay_ms(496);
pitido (G3, 124); delay_ms(496);
pitido (C4, 124); delay_ms(248);
pitido (G3, 124); delay_ms(248);
pitido (E3, 124); delay_ms(248);
pitido (A3, 124); delay_ms(124);
pitido (B3, 124); delay_ms(124);
pitido (As3, 124); pitido (A3, 124); delay_ms(124);
pitido (G3, 124); pitido (E4, 124); delay_ms(124);
pitido (G4, 124); pitido (A4, 124); delay_ms(124);
pitido (F4, 124); pitido (G4, 124); delay_ms(124);
pitido (E4, 124); delay_ms(124);
pitido (C4, 124); pitido (D4, 124); pitido (B4, 124);
suena mejor sin la última línea a menos que se coloca
}
void play1up(void) {}
sonido 1UP
pitido (E5, 62); delay_ms(62);
pitido (G5, 62); delay_ms(62);
pitido (E6, 62); delay_ms(62);
pitido (C6, 62); delay_ms(62);
pitido (D6, 62); delay_ms(62);
pitido (G6, 312);
}
void playFlagTune (void) {}
Bandera *
pitido (G2, 124);
pitido (C3, 124);
pitido (E3, 124);
pitido (G3, 124);
pitido (C4, 124);
pitido (E4, 124);
pitido (G4, 372);
pitido (E4, 372);
pitido (Gs2, 124);
pitido (C3, 124);
pitido (Ds3, 124);
pitido (Gs3, 124);
pitido (C4, 124);
pitido (Ds4, 124);
pitido (Gs4, 372);
pitido (Ds4, 372);
pitido (As2, 124);
pitido (D3, 124);
pitido (F3, 124);
pitido (As3, 124);
pitido (D4, 124);
pitido (F4, 124);
pitido (COMO4, 372);
pitido (COMO4, 124);
pitido (COMO4, 124);
pitido (COMO4, 124);
pitido (E4, 372);
}