Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: RTC-DS1307 mbed
main.cpp
- Committer:
- Karrots3
- Date:
- 2016-04-18
- Revision:
- 3:0fa42a66a4a6
- Parent:
- 2:d3b43d747191
File content as of revision 3:0fa42a66a4a6:
#include "mbed.h"
#include "Rtc_Ds1307.h"
#include "note.h"
DigitalIn bottone1(p23);
DigitalOut ledR(p25);
DigitalOut ledG(p24);
DigitalOut ledB(p26);
Rtc_Ds1307 rtc( p9,p10 );
PwmOut piezo(p22);
Serial pc(USBTX, USBRX, "pc");
bool flag1=0;
int ultimo_giorno=0;
int orario;
long long int c;
void suono(int frequenza, int beat);
void seriale(Rtc_Ds1307::Time_rtc time);
int main()
{
Rtc_Ds1307::Time_rtc time= {};
seriale(time);
while(1) {
if(ultimo_giorno!=time.date) { //if ultimo giorno è oggi
if(orario == time.hour) { //if è l'ora della pappa
ledB=1;
suono(NOTE_B4,1);
ultimo_giorno=time.date;
} else if(bottone1 && time.hour==(orario-1) && time.min>=30) { //30 min prima
ledR=1;
suono(NOTE_B4,1);
ultimo_giorno=time.date;
} else if(bottone1 && time.hour>orario) { //l'ora è gia passata ma devo ancora prenderlo
ledG=1;
suono(NOTE_B4,1);
ultimo_giorno=time.date;
} else {
if(bottone1) { //l'ora deve ancora venire e premo bottone
ledR=1;
suono(NOTE_B4,1);
wait(1);
ledR=0;
}
}
} else { //gia fatto oggi e premo bottone
if(bottone1) {
ledR=1;
suono(NOTE_B4,1);
}
}
}//while(1)
}//main
void suono(int frequenza, int beat)
{
piezo.period(1.0 / frequenza);
piezo.write(0.5);
wait(1.0 / beat);
piezo.write(0);
wait(0.05);
}
void seriale(Rtc_Ds1307::Time_rtc time)
{
int c;
pc.printf("**********************************\n");
pc.printf("* Menu : *\n");
pc.printf("* 1 - imposta ora orologio *\n");
pc.printf("* 2 - imposta ora pastiglia *\n");
pc.printf("* 3 - mostra settaggi *\n");
pc.scanf("%d", &c);
switch(c) {
case 1:
pc.printf("Giorno (0..31)");
pc.scanf("%d", &time.date);
pc.printf("Mese (1..12)");
pc.scanf("%d", &time.mon);
pc.printf("Anno ");
pc.scanf("%d", &time.year);
pc.printf("Ore (0..23)");
pc.scanf("%d", &time.hour);
pc.printf("Minuti (0..59)");
pc.scanf("%d", &time.min);
pc.printf("Secondi (0..59)");
pc.scanf("%d", &time.sec);
break;
case 2:
pc.printf("Orario pastiglia");
pc.scanf("%d", &orario);
break;
case 3:
pc.printf("Ora sono le : %02d:%02d:%02d del %02d/%02d/%04d \n", time.hour, time.min, time.sec, time.mon, time.date, time.year);
break;
}
}