Clock to use with LCD NK5110. You need to use N5110 libraries
Fork of Nokia5110 by
main.cpp@5:195cb8367908, 2016-01-15 (annotated)
- Committer:
- henr22
- Date:
- Fri Jan 15 19:15:01 2016 +0000
- Revision:
- 5:195cb8367908
- Parent:
- 4:9382162fdb60
Clock to use with LCD N5110. N5110 library is necessary.;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
henr22 | 4:9382162fdb60 | 1 | // Project: Nokia5110 - Watch to NK5110 display from an NXP LPC1768 |
Fuzball | 2:e448efb1fa68 | 2 | // File: main.cpp |
henr22 | 4:9382162fdb60 | 3 | // Author: José Pimentel |
henr22 | 4:9382162fdb60 | 4 | // Created: January, 2016 |
Fuzball | 2:e448efb1fa68 | 5 | // Revised: |
henr22 | 4:9382162fdb60 | 6 | // V1.0 |
Fuzball | 2:e448efb1fa68 | 7 | |
Fuzball | 2:e448efb1fa68 | 8 | #include "mbed.h" |
henr22 | 4:9382162fdb60 | 9 | #include "N5110.h" |
henr22 | 4:9382162fdb60 | 10 | |
henr22 | 4:9382162fdb60 | 11 | Serial pc(USBTX, USBRX); |
henr22 | 4:9382162fdb60 | 12 | N5110 lcd(p7,p8,p9,p10,p11,p13,p21); |
Fuzball | 2:e448efb1fa68 | 13 | |
Fuzball | 2:e448efb1fa68 | 14 | int main() |
henr22 | 4:9382162fdb60 | 15 | |
Fuzball | 2:e448efb1fa68 | 16 | { |
henr22 | 4:9382162fdb60 | 17 | //Inicialização e Parametrização do lcd |
henr22 | 4:9382162fdb60 | 18 | lcd.init(); |
henr22 | 4:9382162fdb60 | 19 | lcd.setBrightness(0.1); |
henr22 | 4:9382162fdb60 | 20 | |
henr22 | 4:9382162fdb60 | 21 | char horas[3]="19"; //Colocar na hora atual |
henr22 | 4:9382162fdb60 | 22 | char minutos[3]="10"; //Colocar no minuto atual |
henr22 | 4:9382162fdb60 | 23 | char segundo[3]="00"; //Colocar no segundo a iniciar (opcional) |
Fuzball | 2:e448efb1fa68 | 24 | |
henr22 | 4:9382162fdb60 | 25 | int min = 0; //Colocar no minuto atual + 1 |
henr22 | 4:9382162fdb60 | 26 | int hora = 9; //DEBUG:::: Valor original é 0 //Colocar na hora atual + 1 |
henr22 | 4:9382162fdb60 | 27 | |
henr22 | 4:9382162fdb60 | 28 | int dezenas = 1; |
henr22 | 4:9382162fdb60 | 29 | int dezenasMinutos = 2; //Colocar na dezena de minuto atual |
henr22 | 4:9382162fdb60 | 30 | int dezenasHoras = 2; //DEBUG ::: Verificar meia noite original = 1 COlcoar na dezena de hora atual |
henr22 | 4:9382162fdb60 | 31 | |
henr22 | 4:9382162fdb60 | 32 | lcd.printChar(':',65,0); |
henr22 | 4:9382162fdb60 | 33 | lcd.printChar(':',48,0); |
henr22 | 4:9382162fdb60 | 34 | lcd.printString(segundo,70,0); |
henr22 | 4:9382162fdb60 | 35 | lcd.printString(horas,36,0); |
henr22 | 4:9382162fdb60 | 36 | lcd.printString(minutos,53,0); |
Fuzball | 2:e448efb1fa68 | 37 | |
henr22 | 4:9382162fdb60 | 38 | while(1) |
henr22 | 4:9382162fdb60 | 39 | { |
henr22 | 4:9382162fdb60 | 40 | if(horas[0] == 50 && horas[1] == 52) |
henr22 | 4:9382162fdb60 | 41 | { |
henr22 | 4:9382162fdb60 | 42 | horas[0] = 48; |
henr22 | 4:9382162fdb60 | 43 | horas[1] = 48; |
henr22 | 4:9382162fdb60 | 44 | dezenasHoras = 1; |
henr22 | 4:9382162fdb60 | 45 | hora = 0; |
henr22 | 4:9382162fdb60 | 46 | } |
henr22 | 4:9382162fdb60 | 47 | lcd.printString(horas,36,0); |
henr22 | 4:9382162fdb60 | 48 | |
henr22 | 4:9382162fdb60 | 49 | if(minutos[0] == 54) |
henr22 | 4:9382162fdb60 | 50 | { |
henr22 | 4:9382162fdb60 | 51 | minutos[0] = 48; |
henr22 | 4:9382162fdb60 | 52 | dezenasMinutos = 1; |
henr22 | 4:9382162fdb60 | 53 | hora = hora + 1; |
henr22 | 4:9382162fdb60 | 54 | if(hora == 10) |
henr22 | 4:9382162fdb60 | 55 | { |
henr22 | 4:9382162fdb60 | 56 | horas[0] = 48 + dezenasHoras; |
henr22 | 4:9382162fdb60 | 57 | dezenasHoras = dezenasHoras + 1; |
henr22 | 4:9382162fdb60 | 58 | hora = 0; |
henr22 | 4:9382162fdb60 | 59 | } |
henr22 | 4:9382162fdb60 | 60 | horas[1] = 48 + hora; |
henr22 | 4:9382162fdb60 | 61 | //lcd.printString(horas,36,0); |
henr22 | 4:9382162fdb60 | 62 | } |
henr22 | 4:9382162fdb60 | 63 | |
henr22 | 4:9382162fdb60 | 64 | if(segundo[0] == 54) |
henr22 | 4:9382162fdb60 | 65 | { //Recomeçar quando chegar aos 60 segundos |
henr22 | 4:9382162fdb60 | 66 | segundo[0] = 48; |
henr22 | 4:9382162fdb60 | 67 | dezenas = 1; |
henr22 | 4:9382162fdb60 | 68 | min = min + 1; |
henr22 | 4:9382162fdb60 | 69 | if(min == 10) |
henr22 | 4:9382162fdb60 | 70 | { |
henr22 | 4:9382162fdb60 | 71 | minutos[0] = 48 + dezenasMinutos; |
henr22 | 4:9382162fdb60 | 72 | dezenasMinutos = dezenasMinutos + 1; |
henr22 | 4:9382162fdb60 | 73 | min = 0; |
henr22 | 4:9382162fdb60 | 74 | } |
henr22 | 4:9382162fdb60 | 75 | minutos[1] = 48 + min; |
henr22 | 4:9382162fdb60 | 76 | lcd.printString(minutos,53,0); |
henr22 | 4:9382162fdb60 | 77 | } |
henr22 | 4:9382162fdb60 | 78 | |
henr22 | 4:9382162fdb60 | 79 | int seg = 0; |
henr22 | 4:9382162fdb60 | 80 | |
henr22 | 4:9382162fdb60 | 81 | while(seg<10) |
henr22 | 4:9382162fdb60 | 82 | { //Contar os segundos até 10 |
henr22 | 4:9382162fdb60 | 83 | segundo[1] = seg+48; |
henr22 | 4:9382162fdb60 | 84 | seg=seg+1; |
henr22 | 4:9382162fdb60 | 85 | wait(1); //Debug: Aumenta a velocidade que o tempo passa para testes: Valor origianl = 1 |
henr22 | 4:9382162fdb60 | 86 | lcd.printString(segundo,70,0); |
henr22 | 4:9382162fdb60 | 87 | lcd.printString(minutos,53,0); |
henr22 | 4:9382162fdb60 | 88 | } |
henr22 | 4:9382162fdb60 | 89 | |
henr22 | 4:9382162fdb60 | 90 | if(seg==10 && dezenas<10) |
henr22 | 4:9382162fdb60 | 91 | { //Alterar dezenas dos segundos |
henr22 | 4:9382162fdb60 | 92 | segundo[1]= 48; |
henr22 | 4:9382162fdb60 | 93 | segundo[0]= 48 + dezenas; |
henr22 | 4:9382162fdb60 | 94 | dezenas = dezenas + 1; |
henr22 | 4:9382162fdb60 | 95 | } |
henr22 | 4:9382162fdb60 | 96 | |
henr22 | 4:9382162fdb60 | 97 | |
Fuzball | 2:e448efb1fa68 | 98 | } |
henr22 | 4:9382162fdb60 | 99 | } |