DCF77 digital clock giveson graphic Nokia 6610 display: @summer or wintertime hour,minute,seconds Day of week Day Month Year
DCF_Clock_Graphic_V1.cpp@0:0d02d25adbcd, 2011-12-20 (annotated)
- Committer:
- flowcode
- Date:
- Tue Dec 20 12:14:26 2011 +0000
- Revision:
- 0:0d02d25adbcd
dcf clock with graphic 130x130 nokia 6610 display on brealout board Olimex
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
flowcode | 0:0d02d25adbcd | 1 | /*DCF77 Digitale Clock V1.0 by hans.oostwal@kpnmail.nl |
flowcode | 0:0d02d25adbcd | 2 | |
flowcode | 0:0d02d25adbcd | 3 | PARTS: |
flowcode | 0:0d02d25adbcd | 4 | Conrad DCF77 receiver. |
flowcode | 0:0d02d25adbcd | 5 | Nokia 6610 graphic 130x130 display on breakout board Olimex. |
flowcode | 0:0d02d25adbcd | 6 | Mbed NXP LCP768. |
flowcode | 0:0d02d25adbcd | 7 | Resisor 2K2 1/4W. |
flowcode | 0:0d02d25adbcd | 8 | ------------------------------------- |
flowcode | 0:0d02d25adbcd | 9 | CONNECTIONS: |
flowcode | 0:0d02d25adbcd | 10 | DCF77 Receiver: |
flowcode | 0:0d02d25adbcd | 11 | pin_1=GND. |
flowcode | 0:0d02d25adbcd | 12 | pin_2=+5V use the not inverted output. |
flowcode | 0:0d02d25adbcd | 13 | pin_3=non inverted open collector output via pullup resistor 2K2 to pin DigitalInput pin_21 Mbed. |
flowcode | 0:0d02d25adbcd | 14 | pin_4=inverted output not used. |
flowcode | 0:0d02d25adbcd | 15 | ------------------------------------- |
flowcode | 0:0d02d25adbcd | 16 | CONNECTIONS: |
flowcode | 0:0d02d25adbcd | 17 | LCD Nokia 6610 Display 130x130 Olimex compatiple: |
flowcode | 0:0d02d25adbcd | 18 | PIN_5 mosi |
flowcode | 0:0d02d25adbcd | 19 | PIN_7 sclk |
flowcode | 0:0d02d25adbcd | 20 | PIN_8 cs |
flowcode | 0:0d02d25adbcd | 21 | PIN_9 rst |
flowcode | 0:0d02d25adbcd | 22 | */ |
flowcode | 0:0d02d25adbcd | 23 | |
flowcode | 0:0d02d25adbcd | 24 | |
flowcode | 0:0d02d25adbcd | 25 | |
flowcode | 0:0d02d25adbcd | 26 | #include "mbed.h" |
flowcode | 0:0d02d25adbcd | 27 | #include "NokiaLCD.h" |
flowcode | 0:0d02d25adbcd | 28 | |
flowcode | 0:0d02d25adbcd | 29 | //harware_conections |
flowcode | 0:0d02d25adbcd | 30 | DigitalOut testu (LED4);//pariteit error hour |
flowcode | 0:0d02d25adbcd | 31 | DigitalOut testm (LED4);//pariteit error minute |
flowcode | 0:0d02d25adbcd | 32 | DigitalOut testdmy (LED4);//pariteit error day/month/year |
flowcode | 0:0d02d25adbcd | 33 | |
flowcode | 0:0d02d25adbcd | 34 | |
flowcode | 0:0d02d25adbcd | 35 | DigitalOut err_led(LED3);//syncronize error |
flowcode | 0:0d02d25adbcd | 36 | DigitalOut sign_bit_1(LED1);//received DCF bit=1 |
flowcode | 0:0d02d25adbcd | 37 | DigitalOut sign_bit_0(LED2);//received DCF bit=0 |
flowcode | 0:0d02d25adbcd | 38 | |
flowcode | 0:0d02d25adbcd | 39 | |
flowcode | 0:0d02d25adbcd | 40 | DigitalIn dcf_in(p21);//conection of output(Conrad)NON inverting dcf module, (opencollecter use pullup resistor of 2K2). |
flowcode | 0:0d02d25adbcd | 41 | Serial pc(USBTX,USBRX);//usb serial connection |
flowcode | 0:0d02d25adbcd | 42 | |
flowcode | 0:0d02d25adbcd | 43 | //connectons LCD Nokia Graphic Olimex display |
flowcode | 0:0d02d25adbcd | 44 | |
flowcode | 0:0d02d25adbcd | 45 | |
flowcode | 0:0d02d25adbcd | 46 | NokiaLCD lcd(p5, p7, p8, p9, NokiaLCD::LCD6610); // mosi, sclk, cs, rst,: type |
flowcode | 0:0d02d25adbcd | 47 | |
flowcode | 0:0d02d25adbcd | 48 | |
flowcode | 0:0d02d25adbcd | 49 | |
flowcode | 0:0d02d25adbcd | 50 | //variabele |
flowcode | 0:0d02d25adbcd | 51 | char parall, paritym,parityu,paritydmy; |
flowcode | 0:0d02d25adbcd | 52 | char bit; |
flowcode | 0:0d02d25adbcd | 53 | char sec,lcd_sec,a_sec; |
flowcode | 0:0d02d25adbcd | 54 | char teller; |
flowcode | 0:0d02d25adbcd | 55 | char min,minh,minl; |
flowcode | 0:0d02d25adbcd | 56 | char loop_i; |
flowcode | 0:0d02d25adbcd | 57 | char uurh,uurl,uur; |
flowcode | 0:0d02d25adbcd | 58 | char w_dag; |
flowcode | 0:0d02d25adbcd | 59 | char dag,dagh,dagl; |
flowcode | 0:0d02d25adbcd | 60 | char maand,maandh,maandl; |
flowcode | 0:0d02d25adbcd | 61 | char jaar,jaarh,jaarl; |
flowcode | 0:0d02d25adbcd | 62 | char wait_sync; |
flowcode | 0:0d02d25adbcd | 63 | char wait_balk; |
flowcode | 0:0d02d25adbcd | 64 | char summertime; |
flowcode | 0:0d02d25adbcd | 65 | |
flowcode | 0:0d02d25adbcd | 66 | |
flowcode | 0:0d02d25adbcd | 67 | int dcf_array[61]; |
flowcode | 0:0d02d25adbcd | 68 | |
flowcode | 0:0d02d25adbcd | 69 | //makro,s |
flowcode | 0:0d02d25adbcd | 70 | void sync (); |
flowcode | 0:0d02d25adbcd | 71 | void getbit (); |
flowcode | 0:0d02d25adbcd | 72 | void lcd_txt (); |
flowcode | 0:0d02d25adbcd | 73 | void name_weekdag(); |
flowcode | 0:0d02d25adbcd | 74 | void name_month(); |
flowcode | 0:0d02d25adbcd | 75 | |
flowcode | 0:0d02d25adbcd | 76 | |
flowcode | 0:0d02d25adbcd | 77 | //START MAIN |
flowcode | 0:0d02d25adbcd | 78 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
flowcode | 0:0d02d25adbcd | 79 | int main() { //start main_ program |
flowcode | 0:0d02d25adbcd | 80 | |
flowcode | 0:0d02d25adbcd | 81 | wait_sync=120; |
flowcode | 0:0d02d25adbcd | 82 | |
flowcode | 0:0d02d25adbcd | 83 | //welcome text |
flowcode | 0:0d02d25adbcd | 84 | |
flowcode | 0:0d02d25adbcd | 85 | lcd.locate (1,3); |
flowcode | 0:0d02d25adbcd | 86 | lcd.printf("Start DCF V1.0"); |
flowcode | 0:0d02d25adbcd | 87 | lcd.locate(0,5); |
flowcode | 0:0d02d25adbcd | 88 | lcd.printf("hans.oostwal @kpnmail.nl"); |
flowcode | 0:0d02d25adbcd | 89 | wait (5); |
flowcode | 0:0d02d25adbcd | 90 | lcd.cls(); |
flowcode | 0:0d02d25adbcd | 91 | |
flowcode | 0:0d02d25adbcd | 92 | while (1) { //1e_loop |
flowcode | 0:0d02d25adbcd | 93 | |
flowcode | 0:0d02d25adbcd | 94 | //wait for dcf signal |
flowcode | 0:0d02d25adbcd | 95 | lcd.locate (0,3); |
flowcode | 0:0d02d25adbcd | 96 | lcd.printf("wait for 59e bit"); |
flowcode | 0:0d02d25adbcd | 97 | lcd.locate(0,1); |
flowcode | 0:0d02d25adbcd | 98 | lcd.printf("DCF start signal"); |
flowcode | 0:0d02d25adbcd | 99 | |
flowcode | 0:0d02d25adbcd | 100 | parall=0; |
flowcode | 0:0d02d25adbcd | 101 | sec=0; |
flowcode | 0:0d02d25adbcd | 102 | err_led=1; |
flowcode | 0:0d02d25adbcd | 103 | dcf_array[58] = 0; |
flowcode | 0:0d02d25adbcd | 104 | loop_i = 0; |
flowcode | 0:0d02d25adbcd | 105 | sign_bit_0 = 0; |
flowcode | 0:0d02d25adbcd | 106 | sign_bit_1 = 0; |
flowcode | 0:0d02d25adbcd | 107 | |
flowcode | 0:0d02d25adbcd | 108 | while (1) { //2e_loop |
flowcode | 0:0d02d25adbcd | 109 | |
flowcode | 0:0d02d25adbcd | 110 | sync (); |
flowcode | 0:0d02d25adbcd | 111 | err_led=0; |
flowcode | 0:0d02d25adbcd | 112 | |
flowcode | 0:0d02d25adbcd | 113 | while (1) { //3e_loop |
flowcode | 0:0d02d25adbcd | 114 | |
flowcode | 0:0d02d25adbcd | 115 | teller=0; |
flowcode | 0:0d02d25adbcd | 116 | |
flowcode | 0:0d02d25adbcd | 117 | teller++; |
flowcode | 0:0d02d25adbcd | 118 | |
flowcode | 0:0d02d25adbcd | 119 | while (teller<59) { |
flowcode | 0:0d02d25adbcd | 120 | getbit();//JUMP TO MAKRO GETBIT |
flowcode | 0:0d02d25adbcd | 121 | lcd_txt();//JUMP TO MAKRO LCD_TXT |
flowcode | 0:0d02d25adbcd | 122 | teller++; |
flowcode | 0:0d02d25adbcd | 123 | } |
flowcode | 0:0d02d25adbcd | 124 | |
flowcode | 0:0d02d25adbcd | 125 | sec=58; |
flowcode | 0:0d02d25adbcd | 126 | sync (); |
flowcode | 0:0d02d25adbcd | 127 | sec=59; |
flowcode | 0:0d02d25adbcd | 128 | lcd_txt ();//JUMP TO MAKRO lcd_txt |
flowcode | 0:0d02d25adbcd | 129 | getbit (); |
flowcode | 0:0d02d25adbcd | 130 | |
flowcode | 0:0d02d25adbcd | 131 | //calculate summer/winter time---------------------------------------------------------------------- |
flowcode | 0:0d02d25adbcd | 132 | summertime = dcf_array[17] & 1; |
flowcode | 0:0d02d25adbcd | 133 | |
flowcode | 0:0d02d25adbcd | 134 | |
flowcode | 0:0d02d25adbcd | 135 | //---------------------------------------------------------------------------------------------------- |
flowcode | 0:0d02d25adbcd | 136 | |
flowcode | 0:0d02d25adbcd | 137 | |
flowcode | 0:0d02d25adbcd | 138 | //calculate uur-------------------------------------------------------------------------------------- |
flowcode | 0:0d02d25adbcd | 139 | uurh = dcf_array[34] * 20 + dcf_array[33] * 10; |
flowcode | 0:0d02d25adbcd | 140 | uurl = dcf_array[32] * 8 + dcf_array[31] * 4 + dcf_array[30] * 2 + dcf_array[29] * 1; |
flowcode | 0:0d02d25adbcd | 141 | uur = uurh + uurl; |
flowcode | 0:0d02d25adbcd | 142 | //---------------------------------------------------------------------------------------------------- |
flowcode | 0:0d02d25adbcd | 143 | |
flowcode | 0:0d02d25adbcd | 144 | //calculate minutes------------------------------------------------------------------------------------ |
flowcode | 0:0d02d25adbcd | 145 | minl = dcf_array[24] * 8 + dcf_array[23] * 4 + dcf_array[22] * 2 + dcf_array[21] * 1; |
flowcode | 0:0d02d25adbcd | 146 | minh = dcf_array[27] * 40 + dcf_array[26] * 20 +dcf_array[25] * 10; |
flowcode | 0:0d02d25adbcd | 147 | min = minh + minl; |
flowcode | 0:0d02d25adbcd | 148 | //----------------------------------------------------------------------------------------------------- |
flowcode | 0:0d02d25adbcd | 149 | |
flowcode | 0:0d02d25adbcd | 150 | //calculate day of week-------------------------------------------------------------------------------- |
flowcode | 0:0d02d25adbcd | 151 | w_dag = dcf_array[44] * 4 +dcf_array[43] * 2 + dcf_array[42] * 1; |
flowcode | 0:0d02d25adbcd | 152 | |
flowcode | 0:0d02d25adbcd | 153 | //----------------------------------------------------------------------------------------------------- |
flowcode | 0:0d02d25adbcd | 154 | |
flowcode | 0:0d02d25adbcd | 155 | //calculate day---------------------------------------------------------------------------------------- |
flowcode | 0:0d02d25adbcd | 156 | dagl = dcf_array[39] * 8 + dcf_array[38] * 4 + dcf_array[37] * 2 + dcf_array[36] * 1; |
flowcode | 0:0d02d25adbcd | 157 | dagh = dcf_array[41] * 20 + dcf_array[40] * 10; |
flowcode | 0:0d02d25adbcd | 158 | dag=dagh+dagl; |
flowcode | 0:0d02d25adbcd | 159 | |
flowcode | 0:0d02d25adbcd | 160 | //calculate month-------------------------------------------------------------------------------------- |
flowcode | 0:0d02d25adbcd | 161 | maandh = dcf_array[49] * 10; |
flowcode | 0:0d02d25adbcd | 162 | maandl = dcf_array[48] * 8 + dcf_array[47] * 4 + dcf_array[46] * 2 + dcf_array[45] * 1; |
flowcode | 0:0d02d25adbcd | 163 | maand = maandh +maandl; |
flowcode | 0:0d02d25adbcd | 164 | |
flowcode | 0:0d02d25adbcd | 165 | //calculate year--------------------------------------------------------------------------------------- |
flowcode | 0:0d02d25adbcd | 166 | jaarh = dcf_array[57] * 80 + dcf_array[56] * 40 + dcf_array[55] * 20 + dcf_array[54] * 10; |
flowcode | 0:0d02d25adbcd | 167 | jaarl = dcf_array[53] * 8 +dcf_array[52] * 4 + dcf_array[51] * 2 + dcf_array[50] * 1; |
flowcode | 0:0d02d25adbcd | 168 | jaar = jaarh+jaarl; |
flowcode | 0:0d02d25adbcd | 169 | |
flowcode | 0:0d02d25adbcd | 170 | //calculate parity |
flowcode | 0:0d02d25adbcd | 171 | paritym = dcf_array[21] + dcf_array[22] + dcf_array[23] + dcf_array[24] + dcf_array[25] + dcf_array[26] +dcf_array[27] +dcf_array [28]; |
flowcode | 0:0d02d25adbcd | 172 | parityu =dcf_array[29] + dcf_array[30] + dcf_array[31] + dcf_array[32] + dcf_array[33] + dcf_array[34] + dcf_array[35]; |
flowcode | 0:0d02d25adbcd | 173 | paritydmy =dcf_array[36] + dcf_array [37] + dcf_array [38] + dcf_array [39] + dcf_array[40] + dcf_array[41] + dcf_array [42] + dcf_array [43] + dcf_array[44] + dcf_array [45] + dcf_array[46] + dcf_array [47] + dcf_array[48] + dcf_array[49] + dcf_array[50] + dcf_array[51] + dcf_array [52] + dcf_array[53] + dcf_array[54] + dcf_array[55] + dcf_array[56] + dcf_array[57] + dcf_array[58]; |
flowcode | 0:0d02d25adbcd | 174 | |
flowcode | 0:0d02d25adbcd | 175 | //test parity------------------------------ |
flowcode | 0:0d02d25adbcd | 176 | testu=parityu & 1; |
flowcode | 0:0d02d25adbcd | 177 | testm=paritym & 1; |
flowcode | 0:0d02d25adbcd | 178 | testdmy=paritydmy &1; |
flowcode | 0:0d02d25adbcd | 179 | |
flowcode | 0:0d02d25adbcd | 180 | lcd_txt(); |
flowcode | 0:0d02d25adbcd | 181 | |
flowcode | 0:0d02d25adbcd | 182 | }//ed 3e while_loop |
flowcode | 0:0d02d25adbcd | 183 | |
flowcode | 0:0d02d25adbcd | 184 | }//end_2eWhile_loop |
flowcode | 0:0d02d25adbcd | 185 | |
flowcode | 0:0d02d25adbcd | 186 | }// end_1eWhile_loop |
flowcode | 0:0d02d25adbcd | 187 | |
flowcode | 0:0d02d25adbcd | 188 | }//end main_programm |
flowcode | 0:0d02d25adbcd | 189 | //============================================================================ |
flowcode | 0:0d02d25adbcd | 190 | |
flowcode | 0:0d02d25adbcd | 191 | //START makro syc |
flowcode | 0:0d02d25adbcd | 192 | void sync () { |
flowcode | 0:0d02d25adbcd | 193 | loop_i=0; |
flowcode | 0:0d02d25adbcd | 194 | while (loop_i<20) { |
flowcode | 0:0d02d25adbcd | 195 | if (dcf_in==0) { |
flowcode | 0:0d02d25adbcd | 196 | loop_i++; |
flowcode | 0:0d02d25adbcd | 197 | wait (0.050); |
flowcode | 0:0d02d25adbcd | 198 | } else { |
flowcode | 0:0d02d25adbcd | 199 | loop_i=0; |
flowcode | 0:0d02d25adbcd | 200 | } |
flowcode | 0:0d02d25adbcd | 201 | } |
flowcode | 0:0d02d25adbcd | 202 | }// end makro syc |
flowcode | 0:0d02d25adbcd | 203 | //==================================================================== |
flowcode | 0:0d02d25adbcd | 204 | |
flowcode | 0:0d02d25adbcd | 205 | //STRART makro getbit |
flowcode | 0:0d02d25adbcd | 206 | |
flowcode | 0:0d02d25adbcd | 207 | void getbit () { |
flowcode | 0:0d02d25adbcd | 208 | |
flowcode | 0:0d02d25adbcd | 209 | sign_bit_0 = 0; |
flowcode | 0:0d02d25adbcd | 210 | sign_bit_1 = 0; |
flowcode | 0:0d02d25adbcd | 211 | |
flowcode | 0:0d02d25adbcd | 212 | while (dcf_in==0); |
flowcode | 0:0d02d25adbcd | 213 | wait (0.150); |
flowcode | 0:0d02d25adbcd | 214 | |
flowcode | 0:0d02d25adbcd | 215 | if (dcf_in==0) { |
flowcode | 0:0d02d25adbcd | 216 | sign_bit_0=1; |
flowcode | 0:0d02d25adbcd | 217 | sign_bit_1=0; |
flowcode | 0:0d02d25adbcd | 218 | bit=0; |
flowcode | 0:0d02d25adbcd | 219 | } else { |
flowcode | 0:0d02d25adbcd | 220 | sign_bit_1=1; |
flowcode | 0:0d02d25adbcd | 221 | sign_bit_0=0; |
flowcode | 0:0d02d25adbcd | 222 | bit=1; |
flowcode | 0:0d02d25adbcd | 223 | } |
flowcode | 0:0d02d25adbcd | 224 | |
flowcode | 0:0d02d25adbcd | 225 | while (dcf_in) ; |
flowcode | 0:0d02d25adbcd | 226 | |
flowcode | 0:0d02d25adbcd | 227 | sec++; |
flowcode | 0:0d02d25adbcd | 228 | |
flowcode | 0:0d02d25adbcd | 229 | if (sec==61) { |
flowcode | 0:0d02d25adbcd | 230 | sec=1; |
flowcode | 0:0d02d25adbcd | 231 | } |
flowcode | 0:0d02d25adbcd | 232 | |
flowcode | 0:0d02d25adbcd | 233 | dcf_array[sec]=bit; |
flowcode | 0:0d02d25adbcd | 234 | |
flowcode | 0:0d02d25adbcd | 235 | |
flowcode | 0:0d02d25adbcd | 236 | |
flowcode | 0:0d02d25adbcd | 237 | }//end makro getbit |
flowcode | 0:0d02d25adbcd | 238 | //========================================================= |
flowcode | 0:0d02d25adbcd | 239 | |
flowcode | 0:0d02d25adbcd | 240 | //START makro LCD++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
flowcode | 0:0d02d25adbcd | 241 | void lcd_txt () { |
flowcode | 0:0d02d25adbcd | 242 | //wait for syncronize |
flowcode | 0:0d02d25adbcd | 243 | |
flowcode | 0:0d02d25adbcd | 244 | |
flowcode | 0:0d02d25adbcd | 245 | if (wait_sync==120) |
flowcode | 0:0d02d25adbcd | 246 | { |
flowcode | 0:0d02d25adbcd | 247 | wait_balk=0; |
flowcode | 0:0d02d25adbcd | 248 | lcd.cls(); |
flowcode | 0:0d02d25adbcd | 249 | } |
flowcode | 0:0d02d25adbcd | 250 | if (wait_sync > 0) { |
flowcode | 0:0d02d25adbcd | 251 | |
flowcode | 0:0d02d25adbcd | 252 | lcd.locate (0,3); |
flowcode | 0:0d02d25adbcd | 253 | lcd.printf("DCF syncronize "); |
flowcode | 0:0d02d25adbcd | 254 | lcd.locate (0,5); |
flowcode | 0:0d02d25adbcd | 255 | lcd.printf("in:"); |
flowcode | 0:0d02d25adbcd | 256 | lcd.printf("%dsec",wait_sync); |
flowcode | 0:0d02d25adbcd | 257 | wait_sync=wait_sync-1; |
flowcode | 0:0d02d25adbcd | 258 | wait_balk=wait_balk+1; |
flowcode | 0:0d02d25adbcd | 259 | lcd.fill(1,80,wait_balk,20,0xFF0000); |
flowcode | 0:0d02d25adbcd | 260 | |
flowcode | 0:0d02d25adbcd | 261 | |
flowcode | 0:0d02d25adbcd | 262 | if (wait_sync==99) { |
flowcode | 0:0d02d25adbcd | 263 | lcd.cls(); |
flowcode | 0:0d02d25adbcd | 264 | } |
flowcode | 0:0d02d25adbcd | 265 | if (wait_sync==9) { |
flowcode | 0:0d02d25adbcd | 266 | lcd.cls(); |
flowcode | 0:0d02d25adbcd | 267 | } |
flowcode | 0:0d02d25adbcd | 268 | if (wait_sync==0) { |
flowcode | 0:0d02d25adbcd | 269 | lcd.cls(); |
flowcode | 0:0d02d25adbcd | 270 | } |
flowcode | 0:0d02d25adbcd | 271 | } //end wait for syncronize |
flowcode | 0:0d02d25adbcd | 272 | |
flowcode | 0:0d02d25adbcd | 273 | if (wait_sync==0) { |
flowcode | 0:0d02d25adbcd | 274 | parall= testu or testm or testdmy; |
flowcode | 0:0d02d25adbcd | 275 | if (parall) { |
flowcode | 0:0d02d25adbcd | 276 | lcd.cls(); |
flowcode | 0:0d02d25adbcd | 277 | lcd.printf("signal ERROR"); |
flowcode | 0:0d02d25adbcd | 278 | } |
flowcode | 0:0d02d25adbcd | 279 | if (parall==0) { |
flowcode | 0:0d02d25adbcd | 280 | if (lcd_sec==59) lcd.cls(); |
flowcode | 0:0d02d25adbcd | 281 | pc.printf("\x1B\x4A"); |
flowcode | 0:0d02d25adbcd | 282 | lcd.locate(0,3); |
flowcode | 0:0d02d25adbcd | 283 | lcd.foreground (0xFFFFFF); |
flowcode | 0:0d02d25adbcd | 284 | //summer/wintertime ZT or WT |
flowcode | 0:0d02d25adbcd | 285 | if (summertime==0) { |
flowcode | 0:0d02d25adbcd | 286 | lcd.printf("WT "); |
flowcode | 0:0d02d25adbcd | 287 | pc.printf(" Wintertime "); |
flowcode | 0:0d02d25adbcd | 288 | } else { |
flowcode | 0:0d02d25adbcd | 289 | lcd.printf("ZT "); |
flowcode | 0:0d02d25adbcd | 290 | pc.printf(" Summertime "); |
flowcode | 0:0d02d25adbcd | 291 | } |
flowcode | 0:0d02d25adbcd | 292 | |
flowcode | 0:0d02d25adbcd | 293 | // UUR--------------------------------------------- |
flowcode | 0:0d02d25adbcd | 294 | lcd.printf("%d:",uur); |
flowcode | 0:0d02d25adbcd | 295 | pc.printf("%d:",uur); |
flowcode | 0:0d02d25adbcd | 296 | |
flowcode | 0:0d02d25adbcd | 297 | //MIN---------------------------------------------- |
flowcode | 0:0d02d25adbcd | 298 | if (min<10) lcd.printf("0"); |
flowcode | 0:0d02d25adbcd | 299 | lcd.printf("%d:",min); |
flowcode | 0:0d02d25adbcd | 300 | pc.printf("%d:",min); |
flowcode | 0:0d02d25adbcd | 301 | |
flowcode | 0:0d02d25adbcd | 302 | //SEC---------------------------------------------- |
flowcode | 0:0d02d25adbcd | 303 | lcd_sec=sec; |
flowcode | 0:0d02d25adbcd | 304 | if (lcd_sec==60)lcd_sec=0; |
flowcode | 0:0d02d25adbcd | 305 | if (lcd_sec<10) { |
flowcode | 0:0d02d25adbcd | 306 | lcd.printf("0"); |
flowcode | 0:0d02d25adbcd | 307 | pc.printf("0"); |
flowcode | 0:0d02d25adbcd | 308 | } |
flowcode | 0:0d02d25adbcd | 309 | lcd.printf("%d",lcd_sec); |
flowcode | 0:0d02d25adbcd | 310 | pc.printf("%d ",lcd_sec); |
flowcode | 0:0d02d25adbcd | 311 | //LCD col=0 row=1---------------------------------- |
flowcode | 0:0d02d25adbcd | 312 | lcd.locate(0,5);//nieuwe regel |
flowcode | 0:0d02d25adbcd | 313 | |
flowcode | 0:0d02d25adbcd | 314 | |
flowcode | 0:0d02d25adbcd | 315 | //week Dag---------------------------------------------- |
flowcode | 0:0d02d25adbcd | 316 | name_weekdag(); |
flowcode | 0:0d02d25adbcd | 317 | //Dag----------------------------------- |
flowcode | 0:0d02d25adbcd | 318 | lcd.printf(" %d ",dag); |
flowcode | 0:0d02d25adbcd | 319 | pc.printf(" %d ",dag); |
flowcode | 0:0d02d25adbcd | 320 | //MONTH---------------------------------- |
flowcode | 0:0d02d25adbcd | 321 | name_month(); |
flowcode | 0:0d02d25adbcd | 322 | //YEAR------------------------------------------------------------------------------- |
flowcode | 0:0d02d25adbcd | 323 | lcd.locate (5,10); |
flowcode | 0:0d02d25adbcd | 324 | lcd.printf(" 20"); |
flowcode | 0:0d02d25adbcd | 325 | lcd.printf("%d",jaar); |
flowcode | 0:0d02d25adbcd | 326 | pc.printf(" 20"); |
flowcode | 0:0d02d25adbcd | 327 | pc.printf("%d\r",jaar); |
flowcode | 0:0d02d25adbcd | 328 | |
flowcode | 0:0d02d25adbcd | 329 | |
flowcode | 0:0d02d25adbcd | 330 | } |
flowcode | 0:0d02d25adbcd | 331 | |
flowcode | 0:0d02d25adbcd | 332 | |
flowcode | 0:0d02d25adbcd | 333 | }//end if parall |
flowcode | 0:0d02d25adbcd | 334 | }//end if wait syncronize |
flowcode | 0:0d02d25adbcd | 335 | |
flowcode | 0:0d02d25adbcd | 336 | |
flowcode | 0:0d02d25adbcd | 337 | //end MAKRO lcd++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
flowcode | 0:0d02d25adbcd | 338 | |
flowcode | 0:0d02d25adbcd | 339 | //START MAKRO NAME_Week dag----------------------------------------- |
flowcode | 0:0d02d25adbcd | 340 | void name_weekdag() { |
flowcode | 0:0d02d25adbcd | 341 | |
flowcode | 0:0d02d25adbcd | 342 | switch (w_dag) { |
flowcode | 0:0d02d25adbcd | 343 | case 1: { |
flowcode | 0:0d02d25adbcd | 344 | lcd.printf("Maandag"); |
flowcode | 0:0d02d25adbcd | 345 | pc.printf("Ma"); |
flowcode | 0:0d02d25adbcd | 346 | break; |
flowcode | 0:0d02d25adbcd | 347 | } |
flowcode | 0:0d02d25adbcd | 348 | |
flowcode | 0:0d02d25adbcd | 349 | case 2: { |
flowcode | 0:0d02d25adbcd | 350 | lcd.printf("Dinsdag"); |
flowcode | 0:0d02d25adbcd | 351 | pc.printf("Di"); |
flowcode | 0:0d02d25adbcd | 352 | break; |
flowcode | 0:0d02d25adbcd | 353 | } |
flowcode | 0:0d02d25adbcd | 354 | |
flowcode | 0:0d02d25adbcd | 355 | case 3: { |
flowcode | 0:0d02d25adbcd | 356 | lcd.printf("Woensdag"); |
flowcode | 0:0d02d25adbcd | 357 | pc.printf("Wo"); |
flowcode | 0:0d02d25adbcd | 358 | break; |
flowcode | 0:0d02d25adbcd | 359 | } |
flowcode | 0:0d02d25adbcd | 360 | |
flowcode | 0:0d02d25adbcd | 361 | case 4: { |
flowcode | 0:0d02d25adbcd | 362 | lcd.printf("Donderdag"); |
flowcode | 0:0d02d25adbcd | 363 | pc.printf("Do"); |
flowcode | 0:0d02d25adbcd | 364 | break; |
flowcode | 0:0d02d25adbcd | 365 | } |
flowcode | 0:0d02d25adbcd | 366 | |
flowcode | 0:0d02d25adbcd | 367 | case 5: { |
flowcode | 0:0d02d25adbcd | 368 | lcd.printf("Vrijdag"); |
flowcode | 0:0d02d25adbcd | 369 | pc.printf("Vr"); |
flowcode | 0:0d02d25adbcd | 370 | break; |
flowcode | 0:0d02d25adbcd | 371 | } |
flowcode | 0:0d02d25adbcd | 372 | |
flowcode | 0:0d02d25adbcd | 373 | case 6: { |
flowcode | 0:0d02d25adbcd | 374 | lcd.printf("Zaterdag"); |
flowcode | 0:0d02d25adbcd | 375 | pc.printf("Za"); |
flowcode | 0:0d02d25adbcd | 376 | break; |
flowcode | 0:0d02d25adbcd | 377 | } |
flowcode | 0:0d02d25adbcd | 378 | |
flowcode | 0:0d02d25adbcd | 379 | case 7: { |
flowcode | 0:0d02d25adbcd | 380 | lcd.foreground (0xFF0000);//rood |
flowcode | 0:0d02d25adbcd | 381 | lcd.printf("Zondag"); |
flowcode | 0:0d02d25adbcd | 382 | pc.printf("Zo"); |
flowcode | 0:0d02d25adbcd | 383 | break; |
flowcode | 0:0d02d25adbcd | 384 | } |
flowcode | 0:0d02d25adbcd | 385 | } |
flowcode | 0:0d02d25adbcd | 386 | |
flowcode | 0:0d02d25adbcd | 387 | lcd.locate (0,7); |
flowcode | 0:0d02d25adbcd | 388 | } |
flowcode | 0:0d02d25adbcd | 389 | |
flowcode | 0:0d02d25adbcd | 390 | //END name_weekday-------------------------------------------------------------------------- |
flowcode | 0:0d02d25adbcd | 391 | |
flowcode | 0:0d02d25adbcd | 392 | //start makro name_month------------------------------------------------------------------- |
flowcode | 0:0d02d25adbcd | 393 | void name_month () { |
flowcode | 0:0d02d25adbcd | 394 | |
flowcode | 0:0d02d25adbcd | 395 | lcd.foreground (0xFFFFFF); //wit |
flowcode | 0:0d02d25adbcd | 396 | |
flowcode | 0:0d02d25adbcd | 397 | switch (maand) { |
flowcode | 0:0d02d25adbcd | 398 | case 1: { |
flowcode | 0:0d02d25adbcd | 399 | lcd.printf("Januari"); |
flowcode | 0:0d02d25adbcd | 400 | pc.printf("Jan"); |
flowcode | 0:0d02d25adbcd | 401 | break; |
flowcode | 0:0d02d25adbcd | 402 | } |
flowcode | 0:0d02d25adbcd | 403 | |
flowcode | 0:0d02d25adbcd | 404 | case 2: { |
flowcode | 0:0d02d25adbcd | 405 | lcd.printf("Februari"); |
flowcode | 0:0d02d25adbcd | 406 | pc.printf("Feb"); |
flowcode | 0:0d02d25adbcd | 407 | break; |
flowcode | 0:0d02d25adbcd | 408 | } |
flowcode | 0:0d02d25adbcd | 409 | |
flowcode | 0:0d02d25adbcd | 410 | case 3: { |
flowcode | 0:0d02d25adbcd | 411 | lcd.printf("Maart"); |
flowcode | 0:0d02d25adbcd | 412 | pc.printf("Mrt"); |
flowcode | 0:0d02d25adbcd | 413 | break; |
flowcode | 0:0d02d25adbcd | 414 | } |
flowcode | 0:0d02d25adbcd | 415 | |
flowcode | 0:0d02d25adbcd | 416 | case 4: { |
flowcode | 0:0d02d25adbcd | 417 | lcd.printf("April"); |
flowcode | 0:0d02d25adbcd | 418 | pc.printf("Apr"); |
flowcode | 0:0d02d25adbcd | 419 | break; |
flowcode | 0:0d02d25adbcd | 420 | } |
flowcode | 0:0d02d25adbcd | 421 | |
flowcode | 0:0d02d25adbcd | 422 | case 5: { |
flowcode | 0:0d02d25adbcd | 423 | lcd.printf("Mei"); |
flowcode | 0:0d02d25adbcd | 424 | pc.printf("Mei"); |
flowcode | 0:0d02d25adbcd | 425 | break; |
flowcode | 0:0d02d25adbcd | 426 | } |
flowcode | 0:0d02d25adbcd | 427 | |
flowcode | 0:0d02d25adbcd | 428 | case 6: { |
flowcode | 0:0d02d25adbcd | 429 | lcd.printf("Juni"); |
flowcode | 0:0d02d25adbcd | 430 | pc.printf("Jun"); |
flowcode | 0:0d02d25adbcd | 431 | break; |
flowcode | 0:0d02d25adbcd | 432 | } |
flowcode | 0:0d02d25adbcd | 433 | |
flowcode | 0:0d02d25adbcd | 434 | case 7: { |
flowcode | 0:0d02d25adbcd | 435 | lcd.printf("Juli"); |
flowcode | 0:0d02d25adbcd | 436 | pc.printf("Jul"); |
flowcode | 0:0d02d25adbcd | 437 | break; |
flowcode | 0:0d02d25adbcd | 438 | } |
flowcode | 0:0d02d25adbcd | 439 | |
flowcode | 0:0d02d25adbcd | 440 | case 8: { |
flowcode | 0:0d02d25adbcd | 441 | lcd.printf("Augustus"); |
flowcode | 0:0d02d25adbcd | 442 | pc.printf("Aug"); |
flowcode | 0:0d02d25adbcd | 443 | break; |
flowcode | 0:0d02d25adbcd | 444 | } |
flowcode | 0:0d02d25adbcd | 445 | |
flowcode | 0:0d02d25adbcd | 446 | case 9: { |
flowcode | 0:0d02d25adbcd | 447 | lcd.printf("September"); |
flowcode | 0:0d02d25adbcd | 448 | pc.printf("Sep"); |
flowcode | 0:0d02d25adbcd | 449 | |
flowcode | 0:0d02d25adbcd | 450 | |
flowcode | 0:0d02d25adbcd | 451 | break; |
flowcode | 0:0d02d25adbcd | 452 | } |
flowcode | 0:0d02d25adbcd | 453 | |
flowcode | 0:0d02d25adbcd | 454 | case 10: { |
flowcode | 0:0d02d25adbcd | 455 | lcd.printf("Oktober"); |
flowcode | 0:0d02d25adbcd | 456 | pc.printf("Okt"); |
flowcode | 0:0d02d25adbcd | 457 | break; |
flowcode | 0:0d02d25adbcd | 458 | } |
flowcode | 0:0d02d25adbcd | 459 | |
flowcode | 0:0d02d25adbcd | 460 | case 11: { |
flowcode | 0:0d02d25adbcd | 461 | lcd.printf("November"); |
flowcode | 0:0d02d25adbcd | 462 | pc.printf("Nov"); |
flowcode | 0:0d02d25adbcd | 463 | break; |
flowcode | 0:0d02d25adbcd | 464 | } |
flowcode | 0:0d02d25adbcd | 465 | |
flowcode | 0:0d02d25adbcd | 466 | case 12: { |
flowcode | 0:0d02d25adbcd | 467 | lcd.printf("December"); |
flowcode | 0:0d02d25adbcd | 468 | pc.printf("Dec"); |
flowcode | 0:0d02d25adbcd | 469 | break; |
flowcode | 0:0d02d25adbcd | 470 | } |
flowcode | 0:0d02d25adbcd | 471 | |
flowcode | 0:0d02d25adbcd | 472 | } |
flowcode | 0:0d02d25adbcd | 473 | |
flowcode | 0:0d02d25adbcd | 474 | } |
flowcode | 0:0d02d25adbcd | 475 | //end MAKRO name_month------------------------------------------------------------------------------- |
flowcode | 0:0d02d25adbcd | 476 |