<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.mcselec.com/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.mcselec.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin</id>
		<title>MCS Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.mcselec.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin"/>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/Special:Contributions/Admin"/>
		<updated>2026-04-11T12:00:14Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.18.6</generator>

	<entry>
		<id>https://wiki.mcselec.com/Srccodetst</id>
		<title>Srccodetst</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/Srccodetst"/>
				<updated>2019-07-30T14:17:20Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
'----------------------------------------------------------------------------&lt;br /&gt;
'  10K NTC-Temperaturmessung           olaf@olaf-hoyer.de      (c)by O.Hoyer&lt;br /&gt;
'----------------------------------------------------------------------------&lt;br /&gt;
'- einfache Messung der Temperatur mit NTC-Fühlern.&lt;br /&gt;
'- Messbereich -47,0°C bis 146,0°C&lt;br /&gt;
'- 2 Draht-Fühlerleitung Kurzschluss fest&lt;br /&gt;
'- keine aufwendige, zeitkritsche Berechnung&lt;br /&gt;
'- Ausgleich der nichtlinearen Kennlinie in der Tabelle&lt;br /&gt;
'&lt;br /&gt;
'- Optional mit digitalen Messwertfilter zur Glättung der Messung&lt;br /&gt;
'&lt;br /&gt;
'&lt;br /&gt;
'---------------------------------------------------------------------------&lt;br /&gt;
'*** Konstanten *****************&lt;br /&gt;
Const Kfi0 = 6                                              'Filterkonstante Temperaturfühler am ADC0&lt;br /&gt;
Const Kfi1 = 15                                             'Filterkonstante Temperaturfühler am ADC1&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m8def.dat&amp;quot;                                      'Definition-Datei&lt;br /&gt;
$crystal = 8000000                                          'MHz&lt;br /&gt;
$baud = 38400                                               'Baudrate, seriell, Hardware&lt;br /&gt;
 Baud = 38400&lt;br /&gt;
&lt;br /&gt;
'*** Ports **********************&lt;br /&gt;
Ddrc = &amp;amp;B00000000 : Portc = &amp;amp;B00000000                      '0=Eing, 1=Ausg. : Pullup / Ausg. setzen&lt;br /&gt;
Ddrd = &amp;amp;B00000010 : Portd = &amp;amp;B00000000                      '0=Eing, 1=Ausg. : Pullup / Ausg. setzen&lt;br /&gt;
&lt;br /&gt;
'*** SRAM Variablen ****&lt;br /&gt;
Dim T As Sram Integer                                       'temporere Variable&lt;br /&gt;
Dim W As Sram Integer                                       'temporere Variable&lt;br /&gt;
Dim N As Sram Byte                                          'temporere Variable&lt;br /&gt;
Dim S As Sram String * 10                                   'ser.Ausgabepuffer&lt;br /&gt;
&lt;br /&gt;
Dim Sek As Sram Byte&lt;br /&gt;
Dim Temperatur0 As Sram Integer                             'Temperatur in 1/10tel °C&lt;br /&gt;
Dim Temperatur1 As Sram Integer                             'Temperatur in 1/10tel °C&lt;br /&gt;
&lt;br /&gt;
Dim Df0 As Sram Integer                                     ' Differenzspeicher für&lt;br /&gt;
Dim Df1 As Sram Integer                                     ' digitale Filterberechnung&lt;br /&gt;
&lt;br /&gt;
'*** Reset &amp;amp; Init ***************&lt;br /&gt;
Init:&lt;br /&gt;
   Config Adc = Single , Prescaler = 8 , Reference = Internal       'z.B. 2,56V&lt;br /&gt;
   Start Adc                                                'Power On&lt;br /&gt;
&lt;br /&gt;
   Waitms 10&lt;br /&gt;
&lt;br /&gt;
'*** Hauptprogramm **************&lt;br /&gt;
Main:&lt;br /&gt;
&lt;br /&gt;
Messen:&lt;br /&gt;
   T = Getadc(0)                                            'Temperatur0 in 10tel °C&lt;br /&gt;
   Temperatur0 = Lookup(t , Ntcsensor)                      'ohne Digitalfilter&lt;br /&gt;
&lt;br /&gt;
   T = Getadc(1)                                            'Temperatur1 in 10tel °C&lt;br /&gt;
   W = Lookup(t , Ntcsensor)&lt;br /&gt;
   W = W + 0                                                'evtl. Fühlernullpunktkorrektur addieren in 10tel °C&lt;br /&gt;
   T = W - Temperatur1 : Df1 = Df1 + T                      'digitaler Filter&lt;br /&gt;
   T = Df1 / Kfi1 : Temperatur1 = Temperatur1 + T&lt;br /&gt;
   T = T * Kfi1 : Df1 = Df1 - T&lt;br /&gt;
&lt;br /&gt;
Ausgabe:&lt;br /&gt;
   S = Str(temperatur0) : S = Format(s , &amp;quot; 0.0&amp;quot;) : Print S ; &amp;quot; , &amp;quot;;&lt;br /&gt;
   S = Str(temperatur1) : S = Format(s , &amp;quot; 0.0&amp;quot;) : Print S&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Waitms 300&lt;br /&gt;
&lt;br /&gt;
Goto Main&lt;br /&gt;
&lt;br /&gt;
'*** Unterprogramme *************&lt;br /&gt;
&lt;br /&gt;
'*** Interruptroutinen **********&lt;br /&gt;
&lt;br /&gt;
'*** Ende ***********************&lt;br /&gt;
End&lt;br /&gt;
'*** Tabellen in Code-Mem ****************&lt;br /&gt;
$data&lt;br /&gt;
&lt;br /&gt;
'NTC-Temperatursensor Tabelle , 0-1023 = Temperatur in °C/10&lt;br /&gt;
Ntcsensor:&lt;br /&gt;
Data 1466 % , 1456 % , 1445 % , 1434 % , 1424 % , 1414 % , 1404 % , 1394 % , 1384 % , 1375 %&lt;br /&gt;
Data 1365 % , 1356 % , 1347 % , 1338 % , 1329 % , 1320 % , 1311 % , 1303 % , 1294 % , 1286 %&lt;br /&gt;
Data 1278 % , 1270 % , 1262 % , 1254 % , 1246 % , 1238 % , 1231 % , 1223 % , 1216 % , 1209 %&lt;br /&gt;
Data 1202 % , 1195 % , 1188 % , 1181 % , 1174 % , 1167 % , 1160 % , 1154 % , 1147 % , 1141 %&lt;br /&gt;
Data 1135 % , 1128 % , 1122 % , 1116 % , 1110 % , 1104 % , 1098 % , 1092 % , 1087 % , 1081 %&lt;br /&gt;
Data 1075 % , 1070 % , 1064 % , 1059 % , 1053 % , 1048 % , 1043 % , 1037 % , 1032 % , 1027 %&lt;br /&gt;
Data 1022 % , 1017 % , 1012 % , 1007 % , 1002 % , 997 % , 993 % , 988 % , 983 % , 979 %&lt;br /&gt;
Data 974 % , 969 % , 965 % , 961 % , 956 % , 952 % , 947 % , 943 % , 939 % , 935 %&lt;br /&gt;
Data 931 % , 926 % , 922 % , 918 % , 914 % , 910 % , 906 % , 902 % , 899 % , 895 %&lt;br /&gt;
Data 891 % , 887 % , 883 % , 880 % , 876 % , 872 % , 869 % , 865 % , 862 % , 858 %&lt;br /&gt;
Data 855 % , 851 % , 848 % , 844 % , 841 % , 838 % , 834 % , 831 % , 828 % , 824 %&lt;br /&gt;
Data 821 % , 818 % , 815 % , 812 % , 809 % , 805 % , 802 % , 799 % , 796 % , 793 %&lt;br /&gt;
Data 790 % , 787 % , 784 % , 781 % , 779 % , 776 % , 773 % , 770 % , 767 % , 764 %&lt;br /&gt;
Data 762 % , 759 % , 756 % , 753 % , 751 % , 748 % , 745 % , 743 % , 740 % , 737 %&lt;br /&gt;
Data 735 % , 732 % , 730 % , 727 % , 725 % , 722 % , 720 % , 717 % , 715 % , 712 %&lt;br /&gt;
Data 710 % , 707 % , 705 % , 703 % , 700 % , 698 % , 696 % , 693 % , 691 % , 689 %&lt;br /&gt;
Data 686 % , 684 % , 682 % , 680 % , 677 % , 675 % , 673 % , 671 % , 669 % , 666 %&lt;br /&gt;
Data 664 % , 662 % , 660 % , 658 % , 656 % , 654 % , 652 % , 650 % , 648 % , 646 %&lt;br /&gt;
Data 644 % , 642 % , 640 % , 638 % , 636 % , 634 % , 632 % , 630 % , 628 % , 626 %&lt;br /&gt;
Data 624 % , 622 % , 620 % , 618 % , 616 % , 614 % , 613 % , 611 % , 609 % , 607 %&lt;br /&gt;
Data 605 % , 603 % , 602 % , 600 % , 598 % , 596 % , 594 % , 593 % , 591 % , 589 %&lt;br /&gt;
Data 587 % , 586 % , 584 % , 582 % , 581 % , 579 % , 577 % , 575 % , 574 % , 572 %&lt;br /&gt;
Data 570 % , 569 % , 567 % , 566 % , 564 % , 562 % , 561 % , 559 % , 557 % , 556 %&lt;br /&gt;
Data 554 % , 553 % , 551 % , 550 % , 548 % , 546 % , 545 % , 543 % , 542 % , 540 %&lt;br /&gt;
Data 539 % , 537 % , 536 % , 534 % , 533 % , 531 % , 530 % , 528 % , 527 % , 525 %&lt;br /&gt;
Data 524 % , 523 % , 521 % , 520 % , 518 % , 517 % , 515 % , 514 % , 513 % , 511 %&lt;br /&gt;
Data 510 % , 508 % , 507 % , 506 % , 504 % , 503 % , 501 % , 500 % , 499 % , 497 %&lt;br /&gt;
Data 496 % , 495 % , 493 % , 492 % , 491 % , 489 % , 488 % , 487 % , 485 % , 484 %&lt;br /&gt;
Data 483 % , 481 % , 480 % , 479 % , 478 % , 476 % , 475 % , 474 % , 473 % , 471 %&lt;br /&gt;
Data 470 % , 469 % , 467 % , 466 % , 465 % , 464 % , 463 % , 461 % , 460 % , 459 %&lt;br /&gt;
Data 458 % , 456 % , 455 % , 454 % , 453 % , 452 % , 450 % , 449 % , 448 % , 447 %&lt;br /&gt;
Data 446 % , 444 % , 443 % , 442 % , 441 % , 440 % , 439 % , 437 % , 436 % , 435 %&lt;br /&gt;
Data 434 % , 433 % , 432 % , 431 % , 429 % , 428 % , 427 % , 426 % , 425 % , 424 %&lt;br /&gt;
Data 423 % , 422 % , 420 % , 419 % , 418 % , 417 % , 416 % , 415 % , 414 % , 413 %&lt;br /&gt;
Data 412 % , 411 % , 410 % , 408 % , 407 % , 406 % , 405 % , 404 % , 403 % , 402 %&lt;br /&gt;
Data 401 % , 400 % , 399 % , 398 % , 397 % , 396 % , 395 % , 394 % , 393 % , 391 %&lt;br /&gt;
Data 390 % , 389 % , 388 % , 387 % , 386 % , 385 % , 384 % , 383 % , 382 % , 381 %&lt;br /&gt;
Data 380 % , 379 % , 378 % , 377 % , 376 % , 375 % , 374 % , 373 % , 372 % , 371 %&lt;br /&gt;
Data 370 % , 369 % , 368 % , 367 % , 366 % , 365 % , 364 % , 363 % , 362 % , 361 %&lt;br /&gt;
Data 360 % , 359 % , 358 % , 357 % , 356 % , 355 % , 355 % , 354 % , 353 % , 352 %&lt;br /&gt;
Data 351 % , 350 % , 349 % , 348 % , 347 % , 346 % , 345 % , 344 % , 343 % , 342 %&lt;br /&gt;
Data 341 % , 340 % , 339 % , 338 % , 337 % , 337 % , 336 % , 335 % , 334 % , 333 %&lt;br /&gt;
Data 332 % , 331 % , 330 % , 329 % , 328 % , 327 % , 326 % , 325 % , 325 % , 324 %&lt;br /&gt;
Data 323 % , 322 % , 321 % , 320 % , 319 % , 318 % , 317 % , 316 % , 315 % , 315 %&lt;br /&gt;
Data 314 % , 313 % , 312 % , 311 % , 310 % , 309 % , 308 % , 307 % , 306 % , 306 %&lt;br /&gt;
Data 305 % , 304 % , 303 % , 302 % , 301 % , 300 % , 299 % , 298 % , 298 % , 297 %&lt;br /&gt;
Data 296 % , 295 % , 294 % , 293 % , 292 % , 291 % , 291 % , 290 % , 289 % , 288 %&lt;br /&gt;
Data 287 % , 286 % , 285 % , 284 % , 284 % , 283 % , 282 % , 281 % , 280 % , 279 %&lt;br /&gt;
Data 278 % , 278 % , 277 % , 276 % , 275 % , 274 % , 273 % , 272 % , 272 % , 271 %&lt;br /&gt;
Data 270 % , 269 % , 268 % , 267 % , 266 % , 266 % , 265 % , 264 % , 263 % , 262 %&lt;br /&gt;
Data 261 % , 260 % , 260 % , 259 % , 258 % , 257 % , 256 % , 255 % , 255 % , 254 %&lt;br /&gt;
Data 253 % , 252 % , 251 % , 250 % , 249 % , 249 % , 248 % , 247 % , 246 % , 245 %&lt;br /&gt;
Data 244 % , 244 % , 243 % , 242 % , 241 % , 240 % , 239 % , 238 % , 238 % , 237 %&lt;br /&gt;
Data 236 % , 235 % , 234 % , 233 % , 233 % , 232 % , 231 % , 230 % , 229 % , 228 %&lt;br /&gt;
Data 228 % , 227 % , 226 % , 225 % , 224 % , 223 % , 223 % , 222 % , 221 % , 220 %&lt;br /&gt;
Data 219 % , 218 % , 218 % , 217 % , 216 % , 215 % , 214 % , 213 % , 212 % , 212 %&lt;br /&gt;
Data 211 % , 210 % , 209 % , 208 % , 207 % , 207 % , 206 % , 205 % , 204 % , 203 %&lt;br /&gt;
Data 202 % , 202 % , 201 % , 200 % , 199 % , 198 % , 197 % , 197 % , 196 % , 195 %&lt;br /&gt;
Data 194 % , 193 % , 192 % , 192 % , 191 % , 190 % , 189 % , 188 % , 187 % , 186 %&lt;br /&gt;
Data 186 % , 185 % , 184 % , 183 % , 182 % , 181 % , 181 % , 180 % , 179 % , 178 %&lt;br /&gt;
Data 177 % , 176 % , 175 % , 175 % , 174 % , 173 % , 172 % , 171 % , 170 % , 170 %&lt;br /&gt;
Data 169 % , 168 % , 167 % , 166 % , 165 % , 164 % , 164 % , 163 % , 162 % , 161 %&lt;br /&gt;
Data 160 % , 159 % , 158 % , 158 % , 157 % , 156 % , 155 % , 154 % , 153 % , 152 %&lt;br /&gt;
Data 152 % , 151 % , 150 % , 149 % , 148 % , 147 % , 146 % , 146 % , 145 % , 144 %&lt;br /&gt;
Data 143 % , 142 % , 141 % , 140 % , 139 % , 139 % , 138 % , 137 % , 136 % , 135 %&lt;br /&gt;
Data 134 % , 133 % , 132 % , 132 % , 131 % , 130 % , 129 % , 128 % , 127 % , 126 %&lt;br /&gt;
Data 125 % , 124 % , 124 % , 123 % , 122 % , 121 % , 120 % , 119 % , 118 % , 117 %&lt;br /&gt;
Data 116 % , 115 % , 115 % , 114 % , 113 % , 112 % , 111 % , 110 % , 109 % , 108 %&lt;br /&gt;
Data 107 % , 106 % , 105 % , 105 % , 104 % , 103 % , 102 % , 101 % , 100 % , 99 %&lt;br /&gt;
Data 98 % , 97 % , 96 % , 95 % , 94 % , 93 % , 93 % , 92 % , 91 % , 90 %&lt;br /&gt;
Data 89 % , 88 % , 87 % , 86 % , 85 % , 84 % , 83 % , 82 % , 81 % , 80 %&lt;br /&gt;
Data 79 % , 78 % , 77 % , 76 % , 75 % , 75 % , 74 % , 73 % , 72 % , 71 %&lt;br /&gt;
Data 70 % , 69 % , 68 % , 67 % , 66 % , 65 % , 64 % , 63 % , 62 % , 61 %&lt;br /&gt;
Data 60 % , 59 % , 58 % , 57 % , 56 % , 55 % , 54 % , 53 % , 52 % , 51 %&lt;br /&gt;
Data 50 % , 49 % , 48 % , 47 % , 46 % , 45 % , 44 % , 43 % , 42 % , 41 %&lt;br /&gt;
Data 40 % , 39 % , 37 % , 36 % , 35 % , 34 % , 33 % , 32 % , 31 % , 30 %&lt;br /&gt;
Data 29 % , 28 % , 27 % , 26 % , 25 % , 24 % , 23 % , 22 % , 20 % , 19 %&lt;br /&gt;
Data 18 % , 17 % , 16 % , 15 % , 14 % , 13 % , 12 % , 11 % , 10 % , 8 %&lt;br /&gt;
Data 7 % , 6 % , 5 % , 4 % , 3 % , 2 % , 1 % , -1 % , -2 % , -3 %&lt;br /&gt;
Data -4 % , -5 % , -6 % , -7 % , -9 % , -10 % , -11 % , -12 % , -13 % , -14 %&lt;br /&gt;
Data -16 % , -17 % , -18 % , -19 % , -20 % , -22 % , -23 % , -24 % , -25 % , -26 %&lt;br /&gt;
Data -28 % , -29 % , -30 % , -31 % , -33 % , -34 % , -35 % , -36 % , -37 % , -39 %&lt;br /&gt;
Data -40 % , -41 % , -43 % , -44 % , -45 % , -46 % , -48 % , -49 % , -50 % , -51 %&lt;br /&gt;
Data -53 % , -54 % , -55 % , -57 % , -58 % , -59 % , -61 % , -62 % , -63 % , -65 %&lt;br /&gt;
Data -66 % , -67 % , -69 % , -70 % , -71 % , -73 % , -74 % , -76 % , -77 % , -78 %&lt;br /&gt;
Data -80 % , -81 % , -83 % , -84 % , -85 % , -87 % , -88 % , -90 % , -91 % , -93 %&lt;br /&gt;
Data -94 % , -95 % , -97 % , -98 % , -100 % , -101 % , -103 % , -104 % , -106 % , -107 %&lt;br /&gt;
Data -109 % , -110 % , -112 % , -113 % , -115 % , -116 % , -118 % , -120 % , -121 % , -123 %&lt;br /&gt;
Data -124 % , -126 % , -127 % , -129 % , -131 % , -132 % , -134 % , -136 % , -137 % , -139 %&lt;br /&gt;
Data -140 % , -142 % , -144 % , -145 % , -147 % , -149 % , -151 % , -152 % , -154 % , -156 %&lt;br /&gt;
Data -157 % , -159 % , -161 % , -163 % , -164 % , -166 % , -168 % , -170 % , -172 % , -173 %&lt;br /&gt;
Data -175 % , -177 % , -179 % , -181 % , -183 % , -184 % , -186 % , -188 % , -190 % , -192 %&lt;br /&gt;
Data -194 % , -196 % , -198 % , -200 % , -202 % , -204 % , -206 % , -208 % , -210 % , -212 %&lt;br /&gt;
Data -214 % , -216 % , -218 % , -220 % , -222 % , -224 % , -226 % , -228 % , -230 % , -232 %&lt;br /&gt;
Data -234 % , -236 % , -239 % , -241 % , -243 % , -245 % , -247 % , -250 % , -252 % , -254 %&lt;br /&gt;
Data -256 % , -259 % , -261 % , -263 % , -266 % , -268 % , -270 % , -273 % , -275 % , -277 %&lt;br /&gt;
Data -280 % , -282 % , -285 % , -287 % , -290 % , -292 % , -295 % , -297 % , -300 % , -302 %&lt;br /&gt;
Data -305 % , -307 % , -310 % , -313 % , -315 % , -318 % , -321 % , -323 % , -326 % , -329 %&lt;br /&gt;
Data -332 % , -334 % , -337 % , -340 % , -343 % , -346 % , -349 % , -351 % , -354 % , -357 %&lt;br /&gt;
Data -360 % , -363 % , -366 % , -369 % , -372 % , -375 % , -379 % , -382 % , -385 % , -388 %&lt;br /&gt;
Data -391 % , -394 % , -398 % , -401 % , -404 % , -408 % , -411 % , -414 % , -418 % , -421 %&lt;br /&gt;
Data -425 % , -428 % , -432 % , -435 % , -439 % , -442 % , -446 % , -450 % , -453 % , -457 %&lt;br /&gt;
Data -461 % , -465 % , -469 % , -472 %&lt;br /&gt;
&lt;br /&gt;
'-------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/Srccodetst</id>
		<title>Srccodetst</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/Srccodetst"/>
				<updated>2019-07-30T13:50:03Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'--------------------------------------------------------------------------------------&lt;br /&gt;
' real time measurement of preignition angle for two stroke engine&lt;br /&gt;
' made by Zsolt Fazekas (fazekaszs at hotmail.com)&lt;br /&gt;
' Copyright reserved&lt;br /&gt;
'--------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;89s52.dat&amp;quot;&lt;br /&gt;
$crystal = 22118400&lt;br /&gt;
$map&lt;br /&gt;
$baud = 19200&lt;br /&gt;
&lt;br /&gt;
Dim E As Word                                                 'time elapsed from interruption until upper dead point&lt;br /&gt;
Dim F As Word                                                 'time elapsed from upper dead point until interruption&lt;br /&gt;
Dim K As Byte                                                 'secondary variable counting the number of measures made by timer2&lt;br /&gt;
&lt;br /&gt;
Dim Fh As Byte                                                'Fh, Fl, Eh, El - upper and lower bytes of F and E&lt;br /&gt;
Dim Fl As Byte&lt;br /&gt;
Dim Eh As Byte&lt;br /&gt;
Dim El As Byte&lt;br /&gt;
&lt;br /&gt;
Reset F&lt;br /&gt;
Reset E&lt;br /&gt;
Reset K&lt;br /&gt;
&lt;br /&gt;
Reset Fh&lt;br /&gt;
Reset Fl&lt;br /&gt;
Reset Eh&lt;br /&gt;
Reset El&lt;br /&gt;
&lt;br /&gt;
Set Tcon.0                                                    'INT0 falling edge&lt;br /&gt;
Set Tcon.2                                                    'INT1 falling edge&lt;br /&gt;
&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
Enable Timer2&lt;br /&gt;
Enable Timer1&lt;br /&gt;
Disable Serial&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Config Timer2 = Counter , Gate = Internal , Mode = 0          'not the capture mode, however simple counter mode&lt;br /&gt;
Counter2 = 0                                                  'reset counter (driven by a 200KHz outside clock sign coming in through port P1.0)&lt;br /&gt;
&lt;br /&gt;
Config Timer1 = Timer , Gate = Internal , Mode = 2            'auto reload for transmit&lt;br /&gt;
Load Timer1 , 3&lt;br /&gt;
&lt;br /&gt;
Declare Sub Kuld(f As Word , E As Word , Fh As Byte , Fl As Byte , Eh As Byte , El As Byte)&lt;br /&gt;
&lt;br /&gt;
On Int0 Fordulatszam                                          'falling edge interrupt coming in through port P3.2 (at upper dead point)&lt;br /&gt;
On Int1 Elogyujtas                                            'falling edge interrupt coming in through port P3.3 (at the point of ignition)&lt;br /&gt;
&lt;br /&gt;
Start Timer1&lt;br /&gt;
Start Timer2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
Enable Int0&lt;br /&gt;
Enable Int1&lt;br /&gt;
Loop&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Fordulatszam:                                                 'INT0 interrupt, saving E &lt;br /&gt;
Stop Timer2                                                   'stop timer 2 for reading&lt;br /&gt;
Reset Tcon.1                                                  'deleting the interrupt flag&lt;br /&gt;
K = K + 1&lt;br /&gt;
&lt;br /&gt;
If T2con.7 = 1 Then                                           'overflow flag is 1, (f. e. because crankshaft halts)&lt;br /&gt;
Counter2 = 0&lt;br /&gt;
Reset T2con.7                                                 'overflow flag is deleted&lt;br /&gt;
Start Timer2&lt;br /&gt;
F = 0&lt;br /&gt;
E = 0&lt;br /&gt;
K = 0&lt;br /&gt;
Else&lt;br /&gt;
   Eh = Th2&lt;br /&gt;
   El = Tl2&lt;br /&gt;
   E = Makeint(el , Eh)&lt;br /&gt;
         If K &amp;gt;= 3 Then                                       'after enabling interrupt one has to wait until K=3&lt;br /&gt;
         Disable Int0&lt;br /&gt;
         Disable Int1&lt;br /&gt;
         Call Kuld&lt;br /&gt;
         K = 0                                                'the value of K is reset after serial transmission&lt;br /&gt;
         End If&lt;br /&gt;
   Counter2 = 0&lt;br /&gt;
   Start Timer2&lt;br /&gt;
End If&lt;br /&gt;
Return&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sub Kuld(f As Word , E As Word , Fh As Byte , Fl As Byte , Eh As Byte , El As Byte)&lt;br /&gt;
F = F + 6                                                     '6 and 4: time ellapsing between stopping and starting Timer2&lt;br /&gt;
E = E + 4                                                     'this should be added to times measured for correction&lt;br /&gt;
Fh = High(f)&lt;br /&gt;
Fl = Low(f)&lt;br /&gt;
Eh = High(e)&lt;br /&gt;
El = Low(e)&lt;br /&gt;
If Fl = 255 And Fh = 255 Then                                 'the higest value should be avoided because of sincronisation&lt;br /&gt;
Fl = 254&lt;br /&gt;
End If&lt;br /&gt;
If El = 255 And Eh = 255 Then                                 'the higest value should be avouded because of sincronisation&lt;br /&gt;
El = 254&lt;br /&gt;
End If&lt;br /&gt;
If P2.1 = 1 Then                                              'switch&lt;br /&gt;
Scon = &amp;amp;H40&lt;br /&gt;
Enable Serial&lt;br /&gt;
Sbuf = 255                                                    'for sincronisation&lt;br /&gt;
Bitwait Scon.1 , Set&lt;br /&gt;
Reset Scon.1&lt;br /&gt;
Sbuf = 255                                                    'for sincronisation&lt;br /&gt;
Bitwait Scon.1 , Set&lt;br /&gt;
Reset Scon.1&lt;br /&gt;
Sbuf = Fl&lt;br /&gt;
Bitwait Scon.1 , Set&lt;br /&gt;
Reset Scon.1&lt;br /&gt;
Sbuf = Fh&lt;br /&gt;
Bitwait Scon.1 , Set&lt;br /&gt;
Reset Scon.1&lt;br /&gt;
Sbuf = El&lt;br /&gt;
Bitwait Scon.1 , Set&lt;br /&gt;
Reset Scon.1&lt;br /&gt;
Sbuf = Eh&lt;br /&gt;
Bitwait Scon.1 , Set&lt;br /&gt;
Reset Scon.1&lt;br /&gt;
Disable Serial&lt;br /&gt;
End If&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Elogyujtas:                                                   'INT1 interrupt, saving F&lt;br /&gt;
Stop Timer2                                                   'stop timer 2 for reading&lt;br /&gt;
Reset Tcon.3                                                  'deleting the interrupt flag&lt;br /&gt;
K = K + 1&lt;br /&gt;
&lt;br /&gt;
If T2con.7 = 1 Then                                           'overflow flag is 1, (f. e. because crankshaft halts)&lt;br /&gt;
Counter2 = 0&lt;br /&gt;
Reset T2con.7                                                 'overflow flag is deleted&lt;br /&gt;
Start Timer2&lt;br /&gt;
K = 0&lt;br /&gt;
E = 0&lt;br /&gt;
F = 0&lt;br /&gt;
Else&lt;br /&gt;
      Fh = Th2&lt;br /&gt;
      Fl = Tl2&lt;br /&gt;
      F = Makeint(fl , Fh)&lt;br /&gt;
      Counter2 = 0&lt;br /&gt;
      Start Timer2&lt;br /&gt;
End If&lt;br /&gt;
Return&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/7_inch_display_board</id>
		<title>7 inch display board</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/7_inch_display_board"/>
				<updated>2017-03-02T12:38:00Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: /* Source code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[7 inch display board#WizFi210|WIZFI210 Wireless network]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[7 inch display board#iTrax300 GPS|GPS ITRAX300 GPS]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;BTM220 Class 1 bluetooth&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Bluegiga WT41 1 kilometer bluetooth&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SCP1000 barometer&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[7 inch display board#DS1338-33 clock|DS1337 clock with battery backup]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;RS232&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Alvidi AVRB Atxmega128A1 module&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;7 inch display&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;FT232RL USB&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
[[File:7inch display5.jpg|thumb|center|450px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;gallery widths=&amp;quot;160px&amp;quot; heights=&amp;quot;160px&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
File:7inch_display1.jpg&lt;br /&gt;
File:7inch_display2.jpg&lt;br /&gt;
File:7inch_display3.jpg&lt;br /&gt;
File:7inch_display4.jpg&lt;br /&gt;
File:7inch_display6.jpg&lt;br /&gt;
File:7inch_display7.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Source code ==&lt;br /&gt;
&lt;br /&gt;
Include a PDF-file for the 7 inch display and some pictures for the Alvidi on-board SD-card&amp;amp;nbsp;:&amp;amp;nbsp;[[Media:Ssd1963 7inch.zip|Download Ssd1963_7inch.zip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Example of main program:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'&lt;br /&gt;
' Copyright Michael Koecher aka six1 8/2010&lt;br /&gt;
' -&amp;gt; http://www.six1.net/ michael@koecher-web.de&lt;br /&gt;
'&lt;br /&gt;
' http://creativecommons.org/licenses/by-sa/3.0/de/&lt;br /&gt;
' Original nur von http://bascomforum.de&lt;br /&gt;
' Sie dürfen:&lt;br /&gt;
'&lt;br /&gt;
' * das Werk bzw. den Inhalt vervielfältigen, verbreiten und öffentlich zugänglich machen&lt;br /&gt;
'&lt;br /&gt;
' * Abwandlungen und Bearbeitungen des Werkes bzw. Inhaltes anfertigen&lt;br /&gt;
'&lt;br /&gt;
' Zu Den Folgenden Bedingungen:&lt;br /&gt;
'&lt;br /&gt;
' * Namensnennung.&lt;br /&gt;
' Sie müssen den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.&lt;br /&gt;
'&lt;br /&gt;
' * Keine kommerzielle Nutzung.&lt;br /&gt;
' Dieses Werk darf nicht für kommerzielle Zwecke verwendet werden.&lt;br /&gt;
'&lt;br /&gt;
' * Weitergabe unter gleichen Bedingungen.&lt;br /&gt;
' Wenn Sie das lizenzierte Werk bzw. den lizenzierten Inhalt bearbeiten&lt;br /&gt;
' oder in anderer Weise erkennbar als Grundlage für eigenes Schaffen verwenden,&lt;br /&gt;
' dürfen Sie die daraufhin neu entstandenen Werke bzw. Inhalte nur&lt;br /&gt;
' unter Verwendung von Lizenzbedingungen weitergeben, die mit denen&lt;br /&gt;
' dieses Lizenzvertrages identisch oder vergleichbar sind.&lt;br /&gt;
'&lt;br /&gt;
' Wobei gilt:&lt;br /&gt;
'&lt;br /&gt;
' * Verzichtserklärung&lt;br /&gt;
' Jede der vorgenannten Bedingungen kann aufgehoben werden, sofern Sie&lt;br /&gt;
' die ausdrückliche Einwilligung des Rechteinhabers dazu erhalten.&lt;br /&gt;
'&lt;br /&gt;
' * Sonstige Rechte&lt;br /&gt;
' Die Lizenz hat keinerlei Einfluss auf die folgenden Rechte:&lt;br /&gt;
' - Die gesetzlichen Schranken des Urheberrechts und sonstigen&lt;br /&gt;
' Befugnisse zur privaten Nutzung&lt;br /&gt;
' - Das Urheberpersönlichkeitsrecht des Rechteinhabers&lt;br /&gt;
' - Rechte anderer Personen, entweder am Lizenzgegenstand selber oder&lt;br /&gt;
' bezüglich seiner Verwendung, zum Beispiel Persönlichkeitsrechte abgebildeter Personen.&lt;br /&gt;
'&lt;br /&gt;
' Hinweis&lt;br /&gt;
'&lt;br /&gt;
' Im Falle einer Verbreitung müssen Sie anderen alle Lizenzbedingungen&lt;br /&gt;
' mitteilen, die für dieses Werk gelten. Am einfachsten ist es,&lt;br /&gt;
' einen Link auf http://creativecommons.org/licenses/by-sa/3.0/de/ einzubinden.&lt;br /&gt;
'&lt;br /&gt;
'&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'auf Treiber IC SSD1963 geändert 26.11.2011&lt;br /&gt;
'10.09.2012 angepast für Display Typ AT070TN90&lt;br /&gt;
'Hkipnik@aol.com&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;xm128a1def.dat&amp;quot;&lt;br /&gt;
$hwstack = 200&lt;br /&gt;
$swstack = 200&lt;br /&gt;
$framesize = 500&lt;br /&gt;
$crystal = 32000000&lt;br /&gt;
&lt;br /&gt;
Config Osc = Enabled , 32mhzosc = Enabled&lt;br /&gt;
Config Sysclock = 32mhz '--&amp;gt; 32MHz&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
 Config Osc = Disabled , 32mhzosc = Enabled&lt;br /&gt;
 Osc_pllctrl = &amp;amp;B10_0_00100&lt;br /&gt;
 Do&lt;br /&gt;
 Loop Until Osc_status.1 = 1 'Check if RC2MRDY is ready '&lt;br /&gt;
 'enable PLL&lt;br /&gt;
 Set Osc_ctrl.4 'PLL enable&lt;br /&gt;
 'configure the systemclock&lt;br /&gt;
 Config Sysclock = Pll , Prescalea = 1 , Prescalebc = 1_1 'use PLL&lt;br /&gt;
&lt;br /&gt;
 Stop Watchdog&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'Touch Interrupt&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
Const Use_touch = 1 'use Touch = 1&lt;br /&gt;
#if Use_touch = 1&lt;br /&gt;
 Config Pinf.0 = Input 'Set PINF.4 as Input&lt;br /&gt;
 'Because of the activated Pullup the PIN Level is high and there is a falling edge when switch is pressed&lt;br /&gt;
 Config Xpin = Portf.0 , Outpull = Pullup , Sense = Falling 'enable Pull up and reaction on falling edge&lt;br /&gt;
&lt;br /&gt;
 Portf_int0mask = &amp;amp;B0000_0001 'include PIN0 in INT0 Mask&lt;br /&gt;
 Portf_intctrl = &amp;amp;B0000_00_01&lt;br /&gt;
 '^ 'Low Level INT0 Interrupt&lt;br /&gt;
&lt;br /&gt;
 Dim Touch_flag As Bit&lt;br /&gt;
 Touch_flag = 0&lt;br /&gt;
 On Portf_int0 Touch_int&lt;br /&gt;
 Enable Portf_int0 , Lo&lt;br /&gt;
#endif&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 Config Priority = Static , Vector = Application , Lo = Enabled , Med = Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Config Com5 = 57600 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8&lt;br /&gt;
 Open &amp;quot;COM5:&amp;quot; For Binary As #1&lt;br /&gt;
&lt;br /&gt;
 Print #1 , &amp;quot;Graphic 800x480&amp;quot;&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 $include &amp;quot;SSD1963_declarations.inc&amp;quot;&lt;br /&gt;
 $include &amp;quot;SSD1963__sd-card_declarations.inc&amp;quot;&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 Call Sdcard_initialize()&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 'use for Demo&lt;br /&gt;
 Dim Farbe As Word , Countx As Word , Xx1 As Word , Xx2 As Word , Yy1 As Word , Yy2 As Word , Penwidth As Byte , Box_fill As Byte , Show_border As Byte , Radius As Word&lt;br /&gt;
 Dim Help_str As String * 10&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'Start SSD1963&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 Call Ssd1963_init()&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
 Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
'*** MAIN **********************************************************************&lt;br /&gt;
 Do&lt;br /&gt;
 Call Lcd_clear(blue)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Clear area&amp;quot; , 230 , 20 , 1 , Yellow , Blue)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear_area(100 , 100 , 200 , 200 , White)&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear_area(1 , 1 , 200 , 200 , White)&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_text( &amp;quot;BMP 800x480 hallo world&amp;quot; , 100 , 224 , 1 , Gold , Black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;BMP 800x480 hallo world&amp;quot; , 20 , 20 , 2 , Yellow , Red)&lt;br /&gt;
 Wait 1&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;frau5.bmp&amp;quot; , 200 , 0) '24Bit&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;tieger5.bmp&amp;quot; , 1 , 0) '24Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;24Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;tieg8bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;8Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;frau5.bmp&amp;quot; , 200 , 0) '24Bit&lt;br /&gt;
 Wait 1&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;pic18bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;8Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;pic28bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;8Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
&lt;br /&gt;
 Wait 3&lt;br /&gt;
 Call Lcd_negate(0)&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;negate&amp;quot; , 310 , 200 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 3&lt;br /&gt;
 Call Lcd_negate(1)&lt;br /&gt;
&lt;br /&gt;
 Wait 3&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;test8bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Wait 1&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(blue)&lt;br /&gt;
&lt;br /&gt;
#if Use_touch = 1&lt;br /&gt;
 Call Lcd_box(700 , 420 , 790 , 470 , Red , White , 1 , 1)&lt;br /&gt;
 Call Lcd_box(100 , 100 , 105 , 105 , Red , White , 1 , 1)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Touch me&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;next&amp;quot; , 720 , 435 , 2 , Yellow , Red)&lt;br /&gt;
 Do&lt;br /&gt;
 If Touch_flag = 1 Then&lt;br /&gt;
&lt;br /&gt;
 Touchx = 0&lt;br /&gt;
 Touchy = 0&lt;br /&gt;
 Call Lcd_read_touch()&lt;br /&gt;
&lt;br /&gt;
 Select Case Touchx&lt;br /&gt;
 Case 570 To 630 :&lt;br /&gt;
 If Touchy &amp;gt; 5 And Touchy &amp;lt; 65 Then&lt;br /&gt;
 Ende = 1&lt;br /&gt;
 End If&lt;br /&gt;
 End Select&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 If Ende = 1 Then&lt;br /&gt;
 Ende = 0&lt;br /&gt;
 Exit Do&lt;br /&gt;
 End If&lt;br /&gt;
 Touch_flag = 0&lt;br /&gt;
 End If&lt;br /&gt;
&lt;br /&gt;
 Loop&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;LINE&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Xx1 = Rnd(740)&lt;br /&gt;
 Xx2 = Rnd(740)&lt;br /&gt;
 Yy1 = 90 + Rnd(300)&lt;br /&gt;
 Yy2 = 90 + Rnd(300)&lt;br /&gt;
 Penwidth = Rnd(4)&lt;br /&gt;
 Penwidth = Rnd(4)&lt;br /&gt;
 Call Lcd_line(xx1 , Yy1 , Xx2 , Yy2 , Penwidth , Color_array(farbe))&lt;br /&gt;
 Next&lt;br /&gt;
&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;BOX FILL&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = Rnd(740)&lt;br /&gt;
 Xx2 = Rnd(740)&lt;br /&gt;
 Yy1 = 90 + Rnd(300)&lt;br /&gt;
 Yy2 = 90 + Rnd(300)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Box_fill = Rnd(100)&lt;br /&gt;
 If Box_fill &amp;lt; 50 Then Box_fill = 0&lt;br /&gt;
 Show_border = Rnd(100)&lt;br /&gt;
 If Show_border &amp;lt; 70 Then Show_border = 0&lt;br /&gt;
 Call Lcd_box(xx1 , Yy1 , Xx2 , Yy2 , Color_array(farbe) , White , Box_fill , 1)&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;BOX&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = Rnd(740)&lt;br /&gt;
 Xx2 = Rnd(740)&lt;br /&gt;
 Yy1 = 90 + Rnd(300)&lt;br /&gt;
 Yy2 = 90 + Rnd(300)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Call Lcd_box(xx1 , Yy1 , Xx2 , Yy2 , White , Color_array(farbe) , 0 , 1)&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Circle&amp;quot; , 370 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = 40 + Rnd(640)&lt;br /&gt;
 Yy1 = 20 + Rnd(400)&lt;br /&gt;
 Radius = Rnd(50)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Call Lcd_drawcircle(xx1 , Yy1 , Radius , 100 , 2 , Color_array(farbe))&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Circle Fill&amp;quot; , 370 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = 50 + Rnd(540)&lt;br /&gt;
 Yy1 = 80 + Rnd(300)&lt;br /&gt;
 Radius = Rnd(50)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Call Lcd_fill_circle(xx1 , Yy1 , Radius , Color_array(farbe))&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;BMP 320x240&amp;quot; , 330 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;sylt1.bmp&amp;quot; , 240 , 100)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;tieger5.bmp&amp;quot; , 0 , 0)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_setscrollarea(0 , 480 , 0)&lt;br /&gt;
 For Countx = 0 To 479&lt;br /&gt;
 Call Lcd_scroll(countx)&lt;br /&gt;
 Waitms 2&lt;br /&gt;
 Next&lt;br /&gt;
 For Countx = 479 To 0 Step -1&lt;br /&gt;
 Call Lcd_scroll(countx)&lt;br /&gt;
 Waitms 2&lt;br /&gt;
 Next&lt;br /&gt;
&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Loop&lt;br /&gt;
End&lt;br /&gt;
#if Use_touch = 1&lt;br /&gt;
Touch_int:&lt;br /&gt;
 Touch_flag = 1&lt;br /&gt;
 ' Print #1 , &amp;quot;Touch&amp;quot;&lt;br /&gt;
Return&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
 $include &amp;quot;SSD1963__sd-card_routines.inc&amp;quot;&lt;br /&gt;
 $include &amp;quot;SSD1963_functions.inc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 $include &amp;quot;Font12x16.font&amp;quot;&lt;br /&gt;
 $include &amp;quot;font25x32.font&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DS1338-33 clock ==&lt;br /&gt;
&lt;br /&gt;
Put a DS1338-33 clock IC on the board. It is the 3,3 volts 1307.&amp;amp;nbsp;&amp;lt;br/&amp;gt;Got some help to get soft I2c running, the command $forcesofti2c did the trick. And if you study the history.txt files of the Bascom-AVR updates, you will find this command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:7inch DS1338 33.jpg|thumb|center|400px|7inch DS1338 33.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And here the software, with on top a little scan to check if the clock can be found on the soft i2c bus &amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
$regfile = &amp;quot;xm128a1def.dat&amp;quot; &lt;br /&gt;
$hwstack = 200 &lt;br /&gt;
$swstack = 200 &lt;br /&gt;
$framesize = 500 &lt;br /&gt;
$crystal = 32000000 &lt;br /&gt;
&lt;br /&gt;
Config Osc = Enabled , 32mhzosc = Enabled &lt;br /&gt;
Config Sysclock = 32mhz &lt;br /&gt;
&lt;br /&gt;
Config Osc = Disabled , 32mhzosc = Enabled &lt;br /&gt;
Osc_pllctrl = &amp;amp;B10_0_00100 &lt;br /&gt;
Do &lt;br /&gt;
Loop Until Osc_status.1 = 1 'Check if RC2MRDY is ready ' &lt;br /&gt;
'enable PLL &lt;br /&gt;
Set Osc_ctrl.4 'PLL enable &lt;br /&gt;
'configure the systemclock &lt;br /&gt;
Config Sysclock = Pll , Prescalea = 1 , Prescalebc = 1_1 'use PLL &lt;br /&gt;
&lt;br /&gt;
Config Priority = Static , Vector = Application , Lo = Enabled , Med = Enabled &lt;br /&gt;
&lt;br /&gt;
Config Com5 = 57600 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8 &lt;br /&gt;
Open &amp;quot;COM5:&amp;quot; For Binary As #1 &lt;br /&gt;
&lt;br /&gt;
Print #1 , &amp;quot;Start clock&amp;quot; &lt;br /&gt;
&lt;br /&gt;
$forcesofti2c ' with this the software I2C/TWI commands are used when including i2c.lbx &lt;br /&gt;
$lib &amp;quot;i2c.lbx&amp;quot; ' override the normal xmega i2c lib &lt;br /&gt;
&lt;br /&gt;
Dim B As Byte &lt;br /&gt;
Dim Weekday As Byte &lt;br /&gt;
Dim Text As String * 30 &lt;br /&gt;
&lt;br /&gt;
Declare Sub Setdate &lt;br /&gt;
Declare Sub Settime &lt;br /&gt;
Declare Sub Getdatetime &lt;br /&gt;
&lt;br /&gt;
'We use here Virtual port 0 &lt;br /&gt;
Config Vport0 = B ' 'map portB to virtual port0 &lt;br /&gt;
&lt;br /&gt;
Config Scl = Port0 .3 ' Pin to use as SCL (The hardware pin is Pinb.1) &lt;br /&gt;
Config Sda = Port0 .4 ' Pin to use as SDA (The hardware pin is Pinb.0) &lt;br /&gt;
I2cinit ' Bring the Pin's in the proper state &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Print #1 , &amp;quot;Scan start&amp;quot; &lt;br /&gt;
For B = 0 To 254 Step 2 'for all odd addresses &lt;br /&gt;
 I2cstart 'send start &lt;br /&gt;
 I2cwbyte B 'send address &lt;br /&gt;
 If Err = 0 Then 'we got an ack &lt;br /&gt;
 Print #1 , &amp;quot;Slave at : &amp;quot; ; B ; &amp;quot; hex : &amp;quot; ; Hex(b) ; &amp;quot; bin : &amp;quot; ; Bin(b) &lt;br /&gt;
 End If &lt;br /&gt;
 I2cstop 'free bus &lt;br /&gt;
Next &lt;br /&gt;
Print #1 , &amp;quot;End Scan&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Wait 5 ' Bring the Pin's in the proper state &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'DS1338 &lt;br /&gt;
Const Ds1338w = &amp;amp;HD0 ' Adres van de Ds1338 clock &lt;br /&gt;
Const Ds1338r = &amp;amp;HD1 &lt;br /&gt;
&lt;br /&gt;
'Clock &lt;br /&gt;
Config Clock = User &lt;br /&gt;
Config Date = Dmy , Separator = . &lt;br /&gt;
&lt;br /&gt;
$lib &amp;quot;ds1307clock.lib&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'Time$ = &amp;quot;00:07:00&amp;quot; &lt;br /&gt;
'Date$ = &amp;quot;24.02.13&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do &lt;br /&gt;
Call Getdatetime &lt;br /&gt;
Print #1 , _hour &lt;br /&gt;
Print #1 , _min &lt;br /&gt;
Wait 5 &lt;br /&gt;
Loop &lt;br /&gt;
&lt;br /&gt;
End &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'called from ds1307clock.lib &lt;br /&gt;
&lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
' DS1338 Get date-time routine &lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
Getdatetime: &lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338w ' send address &lt;br /&gt;
 I2cwbyte 0 ' start address in 1338 &lt;br /&gt;
&lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338r ' send address &lt;br /&gt;
 I2crbyte _sec , Ack &lt;br /&gt;
 I2crbyte _min , Ack ' MINUTES &lt;br /&gt;
 I2crbyte _hour , Ack ' Hours &lt;br /&gt;
 I2crbyte Weekday , Ack ' Day of Week &lt;br /&gt;
 I2crbyte _day , Ack ' Day of Month &lt;br /&gt;
 I2crbyte _month , Ack ' Month of Year &lt;br /&gt;
 I2crbyte _year , Nack ' Year &lt;br /&gt;
 I2cstop &lt;br /&gt;
 _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour) &lt;br /&gt;
 _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year) &lt;br /&gt;
Return &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
' DS1338 set date routine &lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
Setdate: &lt;br /&gt;
 _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year) &lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338w ' send address &lt;br /&gt;
 I2cwbyte 4 ' starting address in 1338 &lt;br /&gt;
 I2cwbyte _day ' Send Data to SECONDS &lt;br /&gt;
 I2cwbyte _month ' MINUTES &lt;br /&gt;
 I2cwbyte _year ' Hours &lt;br /&gt;
 I2cstop &lt;br /&gt;
Return &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
' DS1338 set time routine &lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
Settime: &lt;br /&gt;
 _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour) &lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338w ' send address &lt;br /&gt;
 I2cwbyte 0 ' starting address in 1338 &lt;br /&gt;
 I2cwbyte _sec ' Send Data to SECONDS &lt;br /&gt;
 I2cwbyte _min ' MINUTES &lt;br /&gt;
 I2cwbyte _hour ' Hours &lt;br /&gt;
 I2cstop &lt;br /&gt;
Return &lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WizFi210&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
=== HW part&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
HKipnik made an example how to make an UDP connection between the 7 inch display board and a Android SmartPhone.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Here some pictures of the WizFi210 with a DIY-antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:Wizfi210 5.jpg|thumb|center|400px|Wizfi210 5.jpg]]&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;250px&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
File:Wizfi210_1.jpg‎|Antenna, 31 mm, with an cap.&lt;br /&gt;
File:Wizfi210_2.jpg‎|Antenna, shrinked &lt;br /&gt;
File:Wizfi210_3.jpg‎|The WIZFI210&lt;br /&gt;
File:Wizfi210_4.jpg‎|The WIZFI210 in detail &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Config part&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
To configure the WIZFI210 with WPA or WEP key, with DHCP or fixed IP and to have it auto-connect a level converter RS232 from PC straight to the WIZFI210&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the WIZSmartScript from the Wiznet site&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;gallery widths=&amp;quot;240px&amp;quot; heights=&amp;quot;240px&amp;quot; align=&amp;quot;center&amp;quot; perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:Wizfi210_1c.jpg‎|The ZIP-file extracted&lt;br /&gt;
File:Wizfi210_2c.jpg‎|Start the WIZSmartScript program, baudrate 115200 &lt;br /&gt;
File:Wizfi210_3c.jpg‎|Find WizFI and Set Command Mode &lt;br /&gt;
File:Wizfi210_4c.jpg‎|Do an Access Point scan and select the Access Point to associate with &lt;br /&gt;
File:Wizfi210_5c.jpg‎|Select the WiFi security. In this case WPA with the Passphrase 'wisclub1'&lt;br /&gt;
File:Wizfi210_6c.jpg‎|Give the module a static IP address (or if you want, give it a DHCP IP address) &lt;br /&gt;
File:Wizfi210_7c.jpg‎|Here you can change the Serial port options&lt;br /&gt;
File:Wizfi210_8c.jpg‎|For this example we will be using UDP traffic to a PC in our network that has the IP address 192.168.0.237 listening to port 5000&lt;br /&gt;
File:Wizfi210_9c.jpg‎|Select an save option. Here you create an startup profile for the WizFi210 module&lt;br /&gt;
File:Wizfi210_10c.jpg‎|You enable auto connect on the next reboot and enable UART messages&lt;br /&gt;
File:Wizfi210_11c.jpg‎|We saved it with the name benshobbycorner and here an example of a script &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
With a not programmed Atxmega128A1. Remove all four jumpers of the Alvidi module (RS232). The MAX3232 on the module will be isolated. Connect the TXD1 and RXD1 from the WIZFI210 to the second RS232 of the Alvidi module. Connect a terminal program, 115200 baud and power the board. If all is connected right you will get the information from the WIZFI210. Start the WizSmartScript and there you go.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:rs232_trick.jpg|thumb|450px|center]]&lt;br /&gt;
&lt;br /&gt;
=== SW part&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
For the next part, Bascom, Android and Wireless, '''all credit goes to HKipnik alias HKBascom alias Heiko'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First some pictures: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;gallery widths=340px heights=340&amp;gt;&lt;br /&gt;
File:Android.png&lt;br /&gt;
File:7inch_android.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this example the WIZFI210 has got IP-address 192.168.0.250&lt;br /&gt;
&lt;br /&gt;
And my Samsung Galaxy Note II has IP-address 192.168.0.237&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Port 5000 is used to send UDP-traffic from the 7 inch display board to the Android SmartPhone.&lt;br /&gt;
&lt;br /&gt;
Port 8000 is used to send UDP-traffic from SmartPhone to 7 inch display.&lt;br /&gt;
&lt;br /&gt;
All wireless. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the software for the 7 inch display board and for the Android Smartphone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first in Bascom-AVR and the second in Basic4Android.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the subdirectory bilder, the images&lt;br /&gt;
&lt;br /&gt;
In the subdirectory wizfi210 a small testprogram and some more info we got from Heiko.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What we did change was the touchscreen routine. We left the old one from Heiko remarked, and put in our own routine.&lt;br /&gt;
&lt;br /&gt;
Seems there are different displays with different touchscreens.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File 1:''' [[Media:7inch_wizfi210.zip|Download 7inch_wizfi210.zip]]&lt;br /&gt;
&lt;br /&gt;
'''File 2:''' [[Media:Test_udp_wizfi210.zip‎|Download Test_udp_wizfi210.zip‎]]&lt;br /&gt;
&lt;br /&gt;
== DHT11 sensor ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DHT11 sensor on location JP1 and from www.AVRprojects.ru we have download software to read the DHT11. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Dht11 7inch.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now we got the time and date from the DS1338-33 and temperature and humidity from a DHT11. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time to make a WordClock. Fontsize 25x32. So on a 800 x 480 pixel display we can make 13 lines of 31 characters. &lt;br /&gt;
&lt;br /&gt;
It is a running clock, the text is refreshed three times a minute so it is very dynamic. &lt;br /&gt;
&lt;br /&gt;
In real the blue is less intensive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Wordclock.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
== iTrax300 GPS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The next step is the iTrax300 GPS module. It is the WIZFI210 or the Itrax300 GPS module, they are on the same serial lines. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;gallery widths=&amp;quot;260px&amp;quot; heights=&amp;quot;260px&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
File:itrax2.jpg&lt;br /&gt;
File:itrax300x.jpg&lt;br /&gt;
File:rs232trick_itrax.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Same trick to connect a PC direct to the iTrax300 module &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:itrax300.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the output of the module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using a switch mode regulator ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a switched mode regulator available which is pin compatible with the 7805 regulator and a similar size. The 7805 regulator is supposed to be roughly 55% efficient where as the switch mode regulator TSR 1-2450 is supposed to be roughly 95% efficient. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Tsr_1-2450_x2.jpg|thumb|center]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Due to the backlight of the display, the 7805 got warm/hot, with the TSR 1-2450 no problem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Easter World Clock ==&lt;br /&gt;
&lt;br /&gt;
'''File 1:''' [[Media:EasterWordClock.zip|Download EasterWordClock.zip]]&lt;br /&gt;
&lt;br /&gt;
== Video&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|3BdFNtNBRlM |500|center|WizFi210 test UDP and Bascom (by HKipnik)}}&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|dpdl6lNeB1Y |500|center|SSD1963 7zoll mit ATxmega128A1 (by HKipnik)}}&lt;br /&gt;
&lt;br /&gt;
== Authors&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&amp;lt;div&amp;gt;Ben&amp;amp;nbsp;Zijlstra and Theo Kleijn designed the board and initial software.&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;HKipnik made various software extensions such as the WIFI.&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/Srccodetst</id>
		<title>Srccodetst</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/Srccodetst"/>
				<updated>2016-03-09T09:49:32Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
'--------------------------------------------------------------&lt;br /&gt;
'                   Thomas Jensen | uCtrl.net&lt;br /&gt;
'--------------------------------------------------------------&lt;br /&gt;
'  file: AVR_LIGHT_SENSOR_v1.0&lt;br /&gt;
'  date: 18/03/2007&lt;br /&gt;
'--------------------------------------------------------------&lt;br /&gt;
$regfile = &amp;quot;m8def.dat&amp;quot;&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
Config Watchdog = 1024&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
Config Portd = Output&lt;br /&gt;
Config Portc = Input&lt;br /&gt;
&lt;br /&gt;
Dim W As Word , Volt As Word , Read_timer As Integer&lt;br /&gt;
Dim C_limit1 As Integer , C_limit2 As Integer&lt;br /&gt;
Dim Over_limit As Bit , Limit As Integer&lt;br /&gt;
Dim Volt_temp As String * 1 , Volt_string As String * 3&lt;br /&gt;
Dim Volt_number As Integer , Set_timer As Integer&lt;br /&gt;
Dim Over_limit_set As Bit , Action_timer As Integer&lt;br /&gt;
Dim Up_counter As Integer , Down_counter As Integer&lt;br /&gt;
Dim Eeprom_limit As Eram Integer , Eeprom_save As Integer&lt;br /&gt;
Dim Lowlimit As Integer , Highlimit As Integer&lt;br /&gt;
&lt;br /&gt;
Config Adc = Single , Prescaler = Auto , Reference = Avcc&lt;br /&gt;
Start Adc&lt;br /&gt;
&lt;br /&gt;
'Inputs&lt;br /&gt;
'PC.0 Light sensor, analog value&lt;br /&gt;
'PC.1 Threshold up&lt;br /&gt;
'PC.2 Threshold down&lt;br /&gt;
'PC.3 Over/under threshold&lt;br /&gt;
&lt;br /&gt;
'Outputs&lt;br /&gt;
'PB.0 LED-display digit 1&lt;br /&gt;
'PB.1 LED-display digit 2&lt;br /&gt;
'PB.2 LED-display digit 3&lt;br /&gt;
'PB.3 Output constant&lt;br /&gt;
'PB.4 Output pulse&lt;br /&gt;
'PortD LED display&lt;br /&gt;
&lt;br /&gt;
'get eeprom values&lt;br /&gt;
Limit = Eeprom_limit&lt;br /&gt;
&lt;br /&gt;
Portd = 64&lt;br /&gt;
Portb.0 = 1&lt;br /&gt;
Portb.1 = 0&lt;br /&gt;
Portb.2 = 0&lt;br /&gt;
Waitms 500&lt;br /&gt;
Portb.0 = 0&lt;br /&gt;
Portb.1 = 1&lt;br /&gt;
Waitms 500&lt;br /&gt;
Portb.1 = 0&lt;br /&gt;
Portb.2 = 1&lt;br /&gt;
Waitms 500&lt;br /&gt;
Portb.2 = 0&lt;br /&gt;
Waitms 500&lt;br /&gt;
&lt;br /&gt;
Start Watchdog&lt;br /&gt;
&lt;br /&gt;
'program start&lt;br /&gt;
Main:&lt;br /&gt;
'read light&lt;br /&gt;
If Read_timer = 0 Then&lt;br /&gt;
W = Getadc(0)&lt;br /&gt;
Volt = W&lt;br /&gt;
Read_timer = 666&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
'set limit up&lt;br /&gt;
If Pinc.1 = 1 Then&lt;br /&gt;
   C_limit1 = 0&lt;br /&gt;
   Up_counter = 0&lt;br /&gt;
   End If&lt;br /&gt;
If Pinc.1 = 0 Then&lt;br /&gt;
   If C_limit1 = 0 Then Incr Limit&lt;br /&gt;
   C_limit1 = 1&lt;br /&gt;
   Incr Up_counter&lt;br /&gt;
   Eeprom_save = 20000&lt;br /&gt;
   Set_timer = 133&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
'set limit down&lt;br /&gt;
If Pinc.2 = 1 Then&lt;br /&gt;
   C_limit2 = 0&lt;br /&gt;
   Down_counter = 0&lt;br /&gt;
   End If&lt;br /&gt;
If Pinc.2 = 0 Then&lt;br /&gt;
   If C_limit2 = 0 Then Decr Limit&lt;br /&gt;
   C_limit2 = 1&lt;br /&gt;
   Incr Down_counter&lt;br /&gt;
   Eeprom_save = 20000&lt;br /&gt;
   Set_timer = 133&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
'correct if value out of range&lt;br /&gt;
If Limit &amp;lt; 0 Then Limit = 0&lt;br /&gt;
If Limit &amp;gt; 999 Then Limit = 999&lt;br /&gt;
If Volt &amp;gt; 999 Then Volt = 999&lt;br /&gt;
&lt;br /&gt;
'check limit and set conditions&lt;br /&gt;
Lowlimit = Limit - 25&lt;br /&gt;
Highlimit = Limit + 25&lt;br /&gt;
&lt;br /&gt;
If Pinc.3 = 0 Then&lt;br /&gt;
   If Volt &amp;gt; Highlimit Then Over_limit = 1&lt;br /&gt;
   If Volt &amp;lt; Lowlimit Then Over_limit = 0&lt;br /&gt;
   Else&lt;br /&gt;
   If Volt &amp;lt; Lowlimit Then Over_limit = 1&lt;br /&gt;
   If Volt &amp;gt; Highlimit Then Over_limit = 0&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
'show light level/threshold&lt;br /&gt;
If Set_timer = 0 Then Volt_string = Str(volt)&lt;br /&gt;
If Set_timer &amp;gt; 0 Then Volt_string = Str(limit)&lt;br /&gt;
&lt;br /&gt;
'digit 1&lt;br /&gt;
If Len(volt_string) &amp;gt; 2 Then Volt_temp = Left(volt_string , 1) Else Volt_temp = &amp;quot;0&amp;quot;&lt;br /&gt;
Volt_number = Val(volt_temp)&lt;br /&gt;
Portd = Lookup(volt_number , Table)&lt;br /&gt;
If Set_timer &amp;gt; 0 Then Portd.7 = 1&lt;br /&gt;
If Len(volt_string) &amp;gt; 3 Then Portd = 121&lt;br /&gt;
Portb.0 = 1&lt;br /&gt;
Portb.1 = 0&lt;br /&gt;
Portb.2 = 0&lt;br /&gt;
Waitms 5&lt;br /&gt;
&lt;br /&gt;
Portb.0 = 0&lt;br /&gt;
Portb.1 = 0&lt;br /&gt;
Portb.2 = 0&lt;br /&gt;
&lt;br /&gt;
'digit 2&lt;br /&gt;
If Len(volt_string) = 2 Then Volt_temp = Left(volt_string , 1)&lt;br /&gt;
If Len(volt_string) &amp;gt; 2 Then Volt_temp = Mid(volt_string , 2 , 1)&lt;br /&gt;
If Len(volt_string) &amp;lt; 2 Then Volt_temp = &amp;quot;0&amp;quot;&lt;br /&gt;
Volt_number = Val(volt_temp)&lt;br /&gt;
Portd = Lookup(volt_number , Table)&lt;br /&gt;
If Over_limit = 1 Then Portd.7 = 1&lt;br /&gt;
If Len(volt_string) &amp;gt; 3 Then Portd = 80&lt;br /&gt;
Portb.0 = 0&lt;br /&gt;
Portb.1 = 1&lt;br /&gt;
Portb.2 = 0&lt;br /&gt;
Waitms 5&lt;br /&gt;
&lt;br /&gt;
Portb.0 = 0&lt;br /&gt;
Portb.1 = 0&lt;br /&gt;
Portb.2 = 0&lt;br /&gt;
&lt;br /&gt;
'digit 3&lt;br /&gt;
Volt_temp = Right(volt_string , 1)&lt;br /&gt;
Volt_number = Val(volt_temp)&lt;br /&gt;
Portd = Lookup(volt_number , Table)&lt;br /&gt;
If Read_timer &amp;gt; 600 And Eeprom_save = 0 Then Portd.7 = 1&lt;br /&gt;
If Read_timer &amp;lt; 600 And Eeprom_save &amp;gt; 0 Then Portd.7 = 1&lt;br /&gt;
If Len(volt_string) &amp;gt; 3 Then Portd = 80&lt;br /&gt;
Portb.0 = 0&lt;br /&gt;
Portb.1 = 0&lt;br /&gt;
Portb.2 = 1&lt;br /&gt;
Waitms 5&lt;br /&gt;
&lt;br /&gt;
Portb.0 = 0&lt;br /&gt;
Portb.1 = 0&lt;br /&gt;
Portb.2 = 0&lt;br /&gt;
&lt;br /&gt;
'set outputs&lt;br /&gt;
If Over_limit = 1 And Over_limit_set = 0 Then&lt;br /&gt;
   Over_limit_set = 1&lt;br /&gt;
   Portb.3 = 1&lt;br /&gt;
   Action_timer = 33&lt;br /&gt;
   End If&lt;br /&gt;
If Over_limit = 0 Then&lt;br /&gt;
   If Over_limit_set = 1 Then Action_timer = 100&lt;br /&gt;
   Over_limit_set = 0&lt;br /&gt;
   Portb.3 = 0&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
'pulse output&lt;br /&gt;
If Action_timer &amp;gt; 0 Then&lt;br /&gt;
   Decr Action_timer&lt;br /&gt;
   Portb.4 = 1&lt;br /&gt;
   End If&lt;br /&gt;
If Action_timer = 0 Then Portb.4 = 0&lt;br /&gt;
&lt;br /&gt;
'timers&lt;br /&gt;
If Set_timer &amp;gt; 0 Then Decr Set_timer&lt;br /&gt;
If Read_timer &amp;gt; 0 Then Decr Read_timer&lt;br /&gt;
&lt;br /&gt;
'fast threshold adjust&lt;br /&gt;
If Up_counter &amp;gt; 66 Then Incr Limit&lt;br /&gt;
If Down_counter &amp;gt; 66 Then Decr Limit&lt;br /&gt;
&lt;br /&gt;
'save eeprom values&lt;br /&gt;
If Eeprom_save &amp;gt; 0 Then Decr Eeprom_save&lt;br /&gt;
If Eeprom_save = 1 Then Eeprom_limit = Limit&lt;br /&gt;
&lt;br /&gt;
'loop&lt;br /&gt;
Reset Watchdog&lt;br /&gt;
Goto Main&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
'---- data for correct display of numbers on LED display ------&lt;br /&gt;
Table:&lt;br /&gt;
Data 63 , 6 , 91 , 79 , 102 , 109 , 125 , 7 , 127 , 111 , 128&lt;br /&gt;
'     0    1   2    3    4     5     6     7   8     9     dp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/Srccodetst</id>
		<title>Srccodetst</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/Srccodetst"/>
				<updated>2015-09-17T17:05:50Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
'--------------------------------------------------------------&lt;br /&gt;
'                   Thomas Jensen | uCtrl.net&lt;br /&gt;
'--------------------------------------------------------------&lt;br /&gt;
'  file: KEYPAD_v.1.0&lt;br /&gt;
'  date: 17/11/2007&lt;br /&gt;
'--------------------------------------------------------------&lt;br /&gt;
$regfile = &amp;quot;attiny2313.dat&amp;quot;&lt;br /&gt;
$crystal = 8000000&lt;br /&gt;
Config Portd = Input&lt;br /&gt;
Config Portb = Output&lt;br /&gt;
Config Watchdog = 1024&lt;br /&gt;
&lt;br /&gt;
Dim Lifesignal As Byte , Number As Byte , Row As Byte , Button As Byte&lt;br /&gt;
Dim Code1 As Integer , Code2 As Integer , Code3 As Byte , Code4 As Byte , Nr As Byte&lt;br /&gt;
Dim Redled As Byte , Greenled As Byte , Amberled As Byte , Code As Integer&lt;br /&gt;
Dim Code_p As Integer , Kanal1 As Byte , Kanal2 As Byte , Timeout As Byte , Feil As Integer&lt;br /&gt;
Dim Eeprom As Eram Integer , Program As Byte , Feil_a As Byte&lt;br /&gt;
&lt;br /&gt;
'Inputs&lt;br /&gt;
'PD2 Keypad R1&lt;br /&gt;
'PD3 Keypad R2&lt;br /&gt;
'PD4 Keypad R3&lt;br /&gt;
'PD5 Keypad R4&lt;br /&gt;
&lt;br /&gt;
'Outputs&lt;br /&gt;
'PB0 Keypad K1&lt;br /&gt;
'PB1 Keypad K2&lt;br /&gt;
'PB2 Keypad K3&lt;br /&gt;
'PB3 Mode 1 signal&lt;br /&gt;
'PB4 Mode 2 signal&lt;br /&gt;
'PB5 Green LED indicator&lt;br /&gt;
'PB6 Red LED indicator&lt;br /&gt;
'PB7 Lifesignal&lt;br /&gt;
&lt;br /&gt;
Code_p = Eeprom                                             'Get stored code&lt;br /&gt;
If Code_p &amp;lt; 0 Then Code_p = 1234                            'If no code use default&lt;br /&gt;
Number = 255&lt;br /&gt;
&lt;br /&gt;
'Boot&lt;br /&gt;
Portb = 0&lt;br /&gt;
&lt;br /&gt;
Start Watchdog&lt;br /&gt;
&lt;br /&gt;
Main:&lt;br /&gt;
'Read keypad&lt;br /&gt;
If Button = 0 And Feil = 0 And Number = 255 Then&lt;br /&gt;
&lt;br /&gt;
If Row = 0 Then                                             'Keyboard row 1&lt;br /&gt;
   Portb.0 = 1&lt;br /&gt;
   If Pind.5 = 1 Then Number = 10&lt;br /&gt;
   If Pind.4 = 1 Then Number = 7&lt;br /&gt;
   If Pind.3 = 1 Then Number = 4&lt;br /&gt;
   If Pind.2 = 1 Then Number = 1&lt;br /&gt;
   Portb.0 = 0&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
If Row = 1 Then                                             'Keyboard row 2&lt;br /&gt;
   Portb.1 = 1&lt;br /&gt;
   If Pind.5 = 1 Then Number = 0&lt;br /&gt;
   If Pind.4 = 1 Then Number = 8&lt;br /&gt;
   If Pind.3 = 1 Then Number = 5&lt;br /&gt;
   If Pind.2 = 1 Then Number = 2&lt;br /&gt;
   Portb.1 = 0&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
If Row = 2 Then                                             'Keyboard row 3&lt;br /&gt;
   Portb.2 = 1&lt;br /&gt;
   If Pind.5 = 1 Then Number = 11&lt;br /&gt;
   If Pind.4 = 1 Then Number = 9&lt;br /&gt;
   If Pind.3 = 1 Then Number = 6&lt;br /&gt;
   If Pind.2 = 1 Then Number = 3&lt;br /&gt;
   Portb.2 = 0&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
Row = Row + 1                                               'Next row&lt;br /&gt;
If Row &amp;gt; 2 Then Row = 0&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
'Reset button status&lt;br /&gt;
Portb.0 = 1&lt;br /&gt;
Portb.1 = 1&lt;br /&gt;
Portb.2 = 1&lt;br /&gt;
If Pind.2 = 0 And Pind.3 = 0 And Pind.4 = 0 And Pind.5 = 0 Then Button = 0&lt;br /&gt;
Portb.0 = 0&lt;br /&gt;
Portb.1 = 0&lt;br /&gt;
Portb.2 = 0&lt;br /&gt;
&lt;br /&gt;
'Get code&lt;br /&gt;
If Number &amp;lt;&amp;gt; 255 Then&lt;br /&gt;
Button = 1&lt;br /&gt;
Select Case Nr&lt;br /&gt;
   Case 0                                                   'Digit 1&lt;br /&gt;
   Code1 = Number&lt;br /&gt;
   Code1 = Code1 * 1000&lt;br /&gt;
   Code = Code1 + Code&lt;br /&gt;
   Amberled = 4&lt;br /&gt;
   Case 1                                                   'Digit 2&lt;br /&gt;
   Code2 = Number&lt;br /&gt;
   Code2 = Code2 * 100&lt;br /&gt;
   Code = Code2 + Code&lt;br /&gt;
   Amberled = 4&lt;br /&gt;
   Case 2                                                   'Digit 3&lt;br /&gt;
   Code3 = Number&lt;br /&gt;
   Code3 = Code3 * 10&lt;br /&gt;
   Code = Code3 + Code&lt;br /&gt;
   Amberled = 4&lt;br /&gt;
   Case 3                                                   'Digit 4&lt;br /&gt;
   Code4 = Number&lt;br /&gt;
   Code = Code4 + Code&lt;br /&gt;
   Amberled = 4&lt;br /&gt;
&lt;br /&gt;
   Case 4&lt;br /&gt;
   If Program = 1 Then                                      'Program new code&lt;br /&gt;
      Select Case Number&lt;br /&gt;
         Case 11                                            'Accept&lt;br /&gt;
         Code_p = Code&lt;br /&gt;
         Eeprom = Code_p&lt;br /&gt;
         Greenled = 60&lt;br /&gt;
         Case Else                                          'Reject&lt;br /&gt;
         Redled = 30&lt;br /&gt;
         End Select&lt;br /&gt;
      Number = 255&lt;br /&gt;
      Program = 0&lt;br /&gt;
      Gosub Reset_code_read&lt;br /&gt;
      Goto Main&lt;br /&gt;
      End If&lt;br /&gt;
   If Code = Code_p Then                                    'Code correct&lt;br /&gt;
   Feil_a = 0&lt;br /&gt;
      Select Case Number&lt;br /&gt;
         Case 0                                             'New code&lt;br /&gt;
         Program = 1&lt;br /&gt;
         Amberled = 40&lt;br /&gt;
         Case 10                                            'Channel 1&lt;br /&gt;
         Kanal1 = 20&lt;br /&gt;
         Greenled = 20&lt;br /&gt;
         Case 11                                            'Channel 2&lt;br /&gt;
         Kanal2 = 20&lt;br /&gt;
         Greenled = 40&lt;br /&gt;
         Case Else                                          'Reject&lt;br /&gt;
         Redled = 30&lt;br /&gt;
         End Select&lt;br /&gt;
   Else                                                     'Code failed&lt;br /&gt;
      Redled = 30&lt;br /&gt;
      Feil_a = Feil_a + 1&lt;br /&gt;
   End If&lt;br /&gt;
   Timeout = 0&lt;br /&gt;
   Number = 255&lt;br /&gt;
   Gosub Reset_code_read&lt;br /&gt;
   Goto Main&lt;br /&gt;
End Select&lt;br /&gt;
Nr = Nr + 1&lt;br /&gt;
Number = 255&lt;br /&gt;
End If&lt;br /&gt;
&lt;br /&gt;
'Timeout when entering code&lt;br /&gt;
If Nr &amp;gt; 0 And Timeout = 0 Then Timeout = 201&lt;br /&gt;
If Timeout &amp;gt; 0 Then Timeout = Timeout - 1&lt;br /&gt;
If Timeout = 1 And Nr &amp;lt;&amp;gt; 0 Then&lt;br /&gt;
   Gosub Reset_code_read&lt;br /&gt;
   Number = 255&lt;br /&gt;
   Redled = 30&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
'Error handling, 3 wrong codes&lt;br /&gt;
If Feil_a &amp;gt; 3 And Feil = 0 Then&lt;br /&gt;
   Feil = 1200&lt;br /&gt;
   Feil_a = 0&lt;br /&gt;
   End If&lt;br /&gt;
If Feil &amp;gt; 0 And Redled = 0 Then Redled = 4&lt;br /&gt;
If Feil &amp;gt; 0 Then Feil = Feil - 1&lt;br /&gt;
&lt;br /&gt;
'AmberLED&lt;br /&gt;
If Amberled &amp;gt; 0 Then&lt;br /&gt;
   Greenled = Amberled&lt;br /&gt;
   Redled = Amberled&lt;br /&gt;
   Amberled = 0&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
'GreenLED&lt;br /&gt;
If Greenled &amp;gt; 2 Then Portb.5 = 1&lt;br /&gt;
If Greenled = 2 Then Portb.5 = 0&lt;br /&gt;
If Greenled &amp;gt; 0 Then Greenled = Greenled - 1&lt;br /&gt;
&lt;br /&gt;
'RedLED&lt;br /&gt;
If Redled &amp;gt; 2 Then Portb.6 = 1&lt;br /&gt;
If Redled = 2 Then Portb.6 = 0&lt;br /&gt;
If Redled &amp;gt; 0 Then Redled = Redled - 1&lt;br /&gt;
&lt;br /&gt;
'Channel1&lt;br /&gt;
If Kanal1 = 20 Then Portb.3 = 1&lt;br /&gt;
If Kanal1 = 1 Then Portb.3 = 0&lt;br /&gt;
If Kanal1 &amp;gt; 0 Then Kanal1 = Kanal1 - 1&lt;br /&gt;
&lt;br /&gt;
'Channel2&lt;br /&gt;
If Kanal2 = 20 Then Portb.4 = 1&lt;br /&gt;
If Kanal2 = 1 Then Portb.4 = 0&lt;br /&gt;
If Kanal2 &amp;gt; 0 Then Kanal2 = Kanal2 - 1&lt;br /&gt;
&lt;br /&gt;
'Lifesignal&lt;br /&gt;
If Lifesignal &amp;gt; 0 Then Lifesignal = Lifesignal - 1&lt;br /&gt;
If Lifesignal = 12 Then Portb.7 = 1&lt;br /&gt;
If Lifesignal = 1 Then Portb.7 = 0&lt;br /&gt;
If Lifesignal = 0 Then Lifesignal = 41&lt;br /&gt;
&lt;br /&gt;
Reset Watchdog&lt;br /&gt;
Waitms 50&lt;br /&gt;
Goto Main                                                   'Loop cycle&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Reset_code_read:                                            'Reset code param.&lt;br /&gt;
   Nr = 0&lt;br /&gt;
   Code = 0&lt;br /&gt;
   Code1 = 0&lt;br /&gt;
   Code2 = 0&lt;br /&gt;
   Code3 = 0&lt;br /&gt;
   Code4 = 0&lt;br /&gt;
Return&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/Srccodetst</id>
		<title>Srccodetst</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/Srccodetst"/>
				<updated>2015-05-19T12:23:27Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
'--------------------------------------------------------------&lt;br /&gt;
' Thomas Jensen | uCtrl.net&lt;br /&gt;
'--------------------------------------------------------------&lt;br /&gt;
' file: AVR_FTU_v_2.0&lt;br /&gt;
' date: 15/03/2007&lt;br /&gt;
'--------------------------------------------------------------&lt;br /&gt;
$regfile = &amp;quot;M8def.dat&amp;quot;&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
Config Watchdog = 1024&lt;br /&gt;
Config Portb.0 = Output&lt;br /&gt;
Config Portb.1 = Output&lt;br /&gt;
Config Portb.2 = Output&lt;br /&gt;
Config Portb.3 = Input&lt;br /&gt;
Config Portb.4 = Input&lt;br /&gt;
Config Portb.5 = Input&lt;br /&gt;
Config Portb.6 = Input&lt;br /&gt;
Config Portb.7 = Input&lt;br /&gt;
Dim Lifesignal As Integer&lt;br /&gt;
Dim W As Word , Volt As Word , Temp As Word&lt;br /&gt;
Dim C_vifte1 As Byte , C_vifte2 As Byte , Set_fan As Byte&lt;br /&gt;
Dim C_alarm1 As Byte , C_alarm2 As Byte , Set_alarm As Byte&lt;br /&gt;
Dim Alarmled As Integer , Cls_timer As Integer , Alarm_timer As Integer&lt;br /&gt;
Dim Eeprom_save As Integer , Eeprom_fan As Eram Byte , Eeprom_alarm As Eram Byte&lt;br /&gt;
Dim Alarm_timer2 As Integer , Fan_speed As Byte , Temp_timer As Byte&lt;br /&gt;
Dim Fan_delay As Integer , Fan_delay2 As Integer&lt;br /&gt;
Dim Fan_timer As Integer , Fan_timer2 As Integer&lt;br /&gt;
&lt;br /&gt;
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up&lt;br /&gt;
Ddrb.1 = 1&lt;br /&gt;
Ddrb.2 = 1&lt;br /&gt;
Pwm1a = 255&lt;br /&gt;
Pwm1b = 255&lt;br /&gt;
&lt;br /&gt;
Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.6 , Rs = Portd.7&lt;br /&gt;
Config Lcd = 16 * 2&lt;br /&gt;
&lt;br /&gt;
Config Adc = Single , Prescaler = Auto , Reference = Avcc&lt;br /&gt;
Start Adc&lt;br /&gt;
&lt;br /&gt;
Lifesignal = 21&lt;br /&gt;
Alarmled = 0&lt;br /&gt;
Eeprom_save = 0&lt;br /&gt;
C_vifte1 = 0&lt;br /&gt;
C_vifte2 = 0&lt;br /&gt;
C_alarm1 = 0&lt;br /&gt;
C_alarm2 = 0&lt;br /&gt;
Cls_timer = 50&lt;br /&gt;
Alarm_timer = 0&lt;br /&gt;
Fan_speed = 0&lt;br /&gt;
Fan_delay = 0&lt;br /&gt;
Fan_timer = 0&lt;br /&gt;
Temp_timer = 10&lt;br /&gt;
&lt;br /&gt;
'get eeprom values&lt;br /&gt;
Set_fan = Eeprom_fan&lt;br /&gt;
If Set_fan &amp;gt; 50 Or Set_fan &amp;lt; 10 Then Set_fan = 30&lt;br /&gt;
Set_alarm = Eeprom_alarm&lt;br /&gt;
If Set_alarm &amp;gt; 50 Or Set_alarm &amp;lt; 10 Then Set_alarm = 32&lt;br /&gt;
&lt;br /&gt;
Cls&lt;br /&gt;
Cursor Off&lt;br /&gt;
Deflcdchar 1 , 32 , 32 , 32 , 7 , 4 , 6 , 4 , 7 'e-sign&lt;br /&gt;
Deflcdchar 2 , 32 , 32 , 32 , 32 , 32 , 32 , 32 , 32 'blank&lt;br /&gt;
&lt;br /&gt;
'turn off alarm&lt;br /&gt;
Pwm1b = 0&lt;br /&gt;
&lt;br /&gt;
Locate 1 , 1&lt;br /&gt;
Lcd &amp;quot;Fan &amp;amp; Temp Unit!&amp;quot;&lt;br /&gt;
Locate 2 , 5&lt;br /&gt;
Lcd &amp;quot;SW v.2.0&amp;quot;&lt;br /&gt;
Waitms 2000&lt;br /&gt;
Cls&lt;br /&gt;
Locate 1 , 1&lt;br /&gt;
Lcd &amp;quot;uCtrl.net&amp;quot;&lt;br /&gt;
Locate 2 , 1&lt;br /&gt;
Lcd &amp;quot;System start =)&amp;quot;&lt;br /&gt;
Waitms 2000&lt;br /&gt;
Cls&lt;br /&gt;
Locate 1 , 5&lt;br /&gt;
Lcd &amp;quot;F:&amp;quot;&lt;br /&gt;
Locate 1 , 11&lt;br /&gt;
Lcd &amp;quot;A:&amp;quot;&lt;br /&gt;
Locate 2 , 1&lt;br /&gt;
Lcd &amp;quot;Fan:&amp;quot;&lt;br /&gt;
Locate 1 , 1&lt;br /&gt;
Lcd &amp;quot;?C&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'turn off alarm&lt;br /&gt;
Pwm1b = 255&lt;br /&gt;
&lt;br /&gt;
Start Watchdog&lt;br /&gt;
&lt;br /&gt;
Main:&lt;br /&gt;
'cls timer&lt;br /&gt;
If Cls_timer &amp;gt; 0 Then Decr Cls_timer&lt;br /&gt;
If Cls_timer = 0 Then&lt;br /&gt;
 Cls&lt;br /&gt;
 Locate 1 , 1&lt;br /&gt;
 Lcd Temp ; &amp;quot;C&amp;quot;&lt;br /&gt;
 Locate 1 , 5&lt;br /&gt;
 Lcd &amp;quot;F:&amp;quot;&lt;br /&gt;
 Locate 1 , 11&lt;br /&gt;
 Lcd &amp;quot;A:&amp;quot;&lt;br /&gt;
 Locate 2 , 1&lt;br /&gt;
 Lcd &amp;quot;Fan:&amp;quot;&lt;br /&gt;
 Cls_timer = 50&lt;br /&gt;
 End If&lt;br /&gt;
&lt;br /&gt;
'check temp&lt;br /&gt;
If Temp_timer &amp;gt; 0 Then Decr Temp_timer&lt;br /&gt;
If Temp_timer = 0 Then&lt;br /&gt;
 W = Getadc(0)&lt;br /&gt;
 Volt = W * 5&lt;br /&gt;
 Temp = Volt / 10&lt;br /&gt;
 Temp_timer = 100&lt;br /&gt;
 End If&lt;br /&gt;
&lt;br /&gt;
'show set points&lt;br /&gt;
Locate 1 , 7&lt;br /&gt;
Lcd Set_fan ; &amp;quot;C&amp;quot;&lt;br /&gt;
Locate 1 , 13&lt;br /&gt;
Lcd Set_alarm ; &amp;quot;C&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'set fan&lt;br /&gt;
If Fan_delay = 0 Then Fan_speed = 0&lt;br /&gt;
&lt;br /&gt;
If Temp &amp;lt; Set_fan Then&lt;br /&gt;
 If Fan_delay = 0 Then Fan_speed = 0&lt;br /&gt;
 Fan_timer = 0&lt;br /&gt;
 End If&lt;br /&gt;
&lt;br /&gt;
If Temp = Set_fan And Fan_speed &amp;lt;&amp;gt; 3 Then&lt;br /&gt;
 Fan_speed = 1&lt;br /&gt;
 Fan_delay = 600&lt;br /&gt;
 If Fan_timer &amp;lt; 300 Then Incr Fan_timer&lt;br /&gt;
 If Fan_timer = 300 Then&lt;br /&gt;
 Fan_speed = 2&lt;br /&gt;
 Fan_delay = 600&lt;br /&gt;
 End If&lt;br /&gt;
 End If&lt;br /&gt;
&lt;br /&gt;
If Temp &amp;gt; Set_fan Then&lt;br /&gt;
 Fan_speed = 3&lt;br /&gt;
 Fan_delay = 600&lt;br /&gt;
 Fan_timer = 300&lt;br /&gt;
 End If&lt;br /&gt;
&lt;br /&gt;
'fan timers&lt;br /&gt;
If Fan_delay &amp;gt; 0 Then Decr Fan_delay&lt;br /&gt;
&lt;br /&gt;
'set fan speed&lt;br /&gt;
If Pinb.5 = 0 Then Fan_speed = Fan_speed + 2&lt;br /&gt;
If Fan_speed &amp;gt; 3 Then Fan_speed = 3&lt;br /&gt;
If Fan_speed = 0 Then Pwm1a = 255&lt;br /&gt;
If Fan_speed = 1 Then Pwm1a = 170&lt;br /&gt;
If Fan_speed = 2 Then Pwm1a = 105&lt;br /&gt;
If Fan_speed = 3 Then Pwm1a = 0&lt;br /&gt;
Locate 2 , 5&lt;br /&gt;
Lcd Fan_speed&lt;br /&gt;
If Pinb.5 = 0 Then&lt;br /&gt;
 Locate 2 , 7&lt;br /&gt;
 Lcd &amp;quot;F&amp;quot;&lt;br /&gt;
 End If&lt;br /&gt;
&lt;br /&gt;
'set fan temp&lt;br /&gt;
If Pinb.3 = 1 Then C_vifte1 = 0&lt;br /&gt;
If Pinb.3 = 0 And C_vifte1 = 0 Then&lt;br /&gt;
 C_vifte1 = 1&lt;br /&gt;
 Set_fan = Set_fan + 1&lt;br /&gt;
 Eeprom_save = 3000&lt;br /&gt;
 End If&lt;br /&gt;
If Pinb.4 = 1 Then C_vifte2 = 0&lt;br /&gt;
If Pinb.4 = 0 And C_vifte2 = 0 Then&lt;br /&gt;
 C_vifte2 = 1&lt;br /&gt;
 Set_fan = Set_fan - 1&lt;br /&gt;
 Eeprom_save = 3000&lt;br /&gt;
 End If&lt;br /&gt;
&lt;br /&gt;
'set alarm temp&lt;br /&gt;
If Pinb.6 = 1 Then C_alarm1 = 0&lt;br /&gt;
If Pinb.6 = 0 And C_alarm1 = 0 Then&lt;br /&gt;
 C_alarm1 = 1&lt;br /&gt;
 Set_alarm = Set_alarm + 1&lt;br /&gt;
 Eeprom_save = 3000&lt;br /&gt;
 End If&lt;br /&gt;
If Pinb.7 = 1 Then C_alarm2 = 0&lt;br /&gt;
If Pinb.7 = 0 And C_alarm2 = 0 Then&lt;br /&gt;
 C_alarm2 = 1&lt;br /&gt;
 Set_alarm = Set_alarm - 1&lt;br /&gt;
 Eeprom_save = 3000&lt;br /&gt;
 End If&lt;br /&gt;
&lt;br /&gt;
'set main temp_alarm&lt;br /&gt;
If Temp &amp;gt;= Set_alarm And Alarm_timer &amp;lt; 300 Then Alarm_timer = Alarm_timer + 1&lt;br /&gt;
If Alarm_timer = 300 And Alarmled = 0 Then Alarmled = 6&lt;br /&gt;
If Temp &amp;lt; Set_alarm Then Alarm_timer = 0&lt;br /&gt;
&lt;br /&gt;
'alarmled&lt;br /&gt;
If Alarmled &amp;gt; 0 Then Alarmled = Alarmled - 1&lt;br /&gt;
If Alarmled = 4 Then Pwm1b = 0&lt;br /&gt;
If Alarmled = 1 Then Pwm1b = 255&lt;br /&gt;
&lt;br /&gt;
'eeprom save&lt;br /&gt;
If Eeprom_save &amp;gt; 0 Then&lt;br /&gt;
 Eeprom_save = Eeprom_save - 1&lt;br /&gt;
 Locate 1 , 16&lt;br /&gt;
 Lcd Chr(1)&lt;br /&gt;
 End If&lt;br /&gt;
If Eeprom_save = 1 Then&lt;br /&gt;
 Eeprom_fan = Set_fan&lt;br /&gt;
 Eeprom_alarm = Set_alarm&lt;br /&gt;
 Locate 1 , 16&lt;br /&gt;
 Lcd Chr(2)&lt;br /&gt;
 End If&lt;br /&gt;
&lt;br /&gt;
'show timers&lt;br /&gt;
Locate 2 , 15&lt;br /&gt;
Alarm_timer2 = Alarm_timer / 10&lt;br /&gt;
Lcd Alarm_timer2&lt;br /&gt;
Locate 2 , 9&lt;br /&gt;
Fan_delay2 = Fan_delay / 10&lt;br /&gt;
Lcd Fan_delay2&lt;br /&gt;
Locate 2 , 12&lt;br /&gt;
Fan_timer2 = Fan_timer / 10&lt;br /&gt;
Lcd Fan_timer2&lt;br /&gt;
&lt;br /&gt;
'lifesignal&lt;br /&gt;
If Lifesignal &amp;gt; 0 Then Lifesignal = Lifesignal - 1&lt;br /&gt;
If Lifesignal = 6 Then Portb.0 = 1&lt;br /&gt;
If Lifesignal = 1 Then Portb.0 = 0&lt;br /&gt;
If Lifesignal = 0 Then Lifesignal = 21&lt;br /&gt;
&lt;br /&gt;
Reset Watchdog&lt;br /&gt;
Waitms 100&lt;br /&gt;
Goto Main&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/Srccodetst</id>
		<title>Srccodetst</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/Srccodetst"/>
				<updated>2015-05-19T12:21:49Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;'-------------------------------------------------------------- '                   Thomas Jensen | uCtrl.net '-------------------------------------------------------------- '...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'--------------------------------------------------------------&lt;br /&gt;
'                   Thomas Jensen | uCtrl.net&lt;br /&gt;
'--------------------------------------------------------------&lt;br /&gt;
'  file: AVR_FTU_v_2.0&lt;br /&gt;
'  date: 15/03/2007&lt;br /&gt;
'--------------------------------------------------------------&lt;br /&gt;
$regfile = &amp;quot;M8def.dat&amp;quot;&lt;br /&gt;
$crystal = 1000000&lt;br /&gt;
Config Watchdog = 1024&lt;br /&gt;
Config Portb.0 = Output&lt;br /&gt;
Config Portb.1 = Output&lt;br /&gt;
Config Portb.2 = Output&lt;br /&gt;
Config Portb.3 = Input&lt;br /&gt;
Config Portb.4 = Input&lt;br /&gt;
Config Portb.5 = Input&lt;br /&gt;
Config Portb.6 = Input&lt;br /&gt;
Config Portb.7 = Input&lt;br /&gt;
Dim Lifesignal As Integer&lt;br /&gt;
Dim W As Word , Volt As Word , Temp As Word&lt;br /&gt;
Dim C_vifte1 As Byte , C_vifte2 As Byte , Set_fan As Byte&lt;br /&gt;
Dim C_alarm1 As Byte , C_alarm2 As Byte , Set_alarm As Byte&lt;br /&gt;
Dim Alarmled As Integer , Cls_timer As Integer , Alarm_timer As Integer&lt;br /&gt;
Dim Eeprom_save As Integer , Eeprom_fan As Eram Byte , Eeprom_alarm As Eram Byte&lt;br /&gt;
Dim Alarm_timer2 As Integer , Fan_speed As Byte , Temp_timer As Byte&lt;br /&gt;
Dim Fan_delay As Integer , Fan_delay2 As Integer&lt;br /&gt;
Dim Fan_timer As Integer , Fan_timer2 As Integer&lt;br /&gt;
&lt;br /&gt;
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up&lt;br /&gt;
Ddrb.1 = 1&lt;br /&gt;
Ddrb.2 = 1&lt;br /&gt;
Pwm1a = 255&lt;br /&gt;
Pwm1b = 255&lt;br /&gt;
&lt;br /&gt;
Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.6 , Rs = Portd.7&lt;br /&gt;
Config Lcd = 16 * 2&lt;br /&gt;
&lt;br /&gt;
Config Adc = Single , Prescaler = Auto , Reference = Avcc&lt;br /&gt;
Start Adc&lt;br /&gt;
&lt;br /&gt;
Lifesignal = 21&lt;br /&gt;
Alarmled = 0&lt;br /&gt;
Eeprom_save = 0&lt;br /&gt;
C_vifte1 = 0&lt;br /&gt;
C_vifte2 = 0&lt;br /&gt;
C_alarm1 = 0&lt;br /&gt;
C_alarm2 = 0&lt;br /&gt;
Cls_timer = 50&lt;br /&gt;
Alarm_timer = 0&lt;br /&gt;
Fan_speed = 0&lt;br /&gt;
Fan_delay = 0&lt;br /&gt;
Fan_timer = 0&lt;br /&gt;
Temp_timer = 10&lt;br /&gt;
&lt;br /&gt;
'get eeprom values&lt;br /&gt;
Set_fan = Eeprom_fan&lt;br /&gt;
If Set_fan &amp;gt; 50 Or Set_fan &amp;lt; 10 Then Set_fan = 30&lt;br /&gt;
Set_alarm = Eeprom_alarm&lt;br /&gt;
If Set_alarm &amp;gt; 50 Or Set_alarm &amp;lt; 10 Then Set_alarm = 32&lt;br /&gt;
&lt;br /&gt;
Cls&lt;br /&gt;
Cursor Off&lt;br /&gt;
Deflcdchar 1 , 32 , 32 , 32 , 7 , 4 , 6 , 4 , 7             'e-sign&lt;br /&gt;
Deflcdchar 2 , 32 , 32 , 32 , 32 , 32 , 32 , 32 , 32        'blank&lt;br /&gt;
&lt;br /&gt;
'turn off alarm&lt;br /&gt;
Pwm1b = 0&lt;br /&gt;
&lt;br /&gt;
Locate 1 , 1&lt;br /&gt;
Lcd &amp;quot;Fan &amp;amp; Temp Unit!&amp;quot;&lt;br /&gt;
Locate 2 , 5&lt;br /&gt;
Lcd &amp;quot;SW v.2.0&amp;quot;&lt;br /&gt;
Waitms 2000&lt;br /&gt;
Cls&lt;br /&gt;
Locate 1 , 1&lt;br /&gt;
Lcd &amp;quot;uCtrl.net&amp;quot;&lt;br /&gt;
Locate 2 , 1&lt;br /&gt;
Lcd &amp;quot;System start =)&amp;quot;&lt;br /&gt;
Waitms 2000&lt;br /&gt;
Cls&lt;br /&gt;
Locate 1 , 5&lt;br /&gt;
Lcd &amp;quot;F:&amp;quot;&lt;br /&gt;
Locate 1 , 11&lt;br /&gt;
Lcd &amp;quot;A:&amp;quot;&lt;br /&gt;
Locate 2 , 1&lt;br /&gt;
Lcd &amp;quot;Fan:&amp;quot;&lt;br /&gt;
Locate 1 , 1&lt;br /&gt;
Lcd &amp;quot;?C&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'turn off alarm&lt;br /&gt;
Pwm1b = 255&lt;br /&gt;
&lt;br /&gt;
Start Watchdog&lt;br /&gt;
&lt;br /&gt;
Main:&lt;br /&gt;
'cls timer&lt;br /&gt;
If Cls_timer &amp;gt; 0 Then Decr Cls_timer&lt;br /&gt;
If Cls_timer = 0 Then&lt;br /&gt;
   Cls&lt;br /&gt;
   Locate 1 , 1&lt;br /&gt;
   Lcd Temp ; &amp;quot;C&amp;quot;&lt;br /&gt;
   Locate 1 , 5&lt;br /&gt;
   Lcd &amp;quot;F:&amp;quot;&lt;br /&gt;
   Locate 1 , 11&lt;br /&gt;
   Lcd &amp;quot;A:&amp;quot;&lt;br /&gt;
   Locate 2 , 1&lt;br /&gt;
   Lcd &amp;quot;Fan:&amp;quot;&lt;br /&gt;
   Cls_timer = 50&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
'check temp&lt;br /&gt;
If Temp_timer &amp;gt; 0 Then Decr Temp_timer&lt;br /&gt;
If Temp_timer = 0 Then&lt;br /&gt;
   W = Getadc(0)&lt;br /&gt;
   Volt = W * 5&lt;br /&gt;
   Temp = Volt / 10&lt;br /&gt;
   Temp_timer = 100&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
'show set points&lt;br /&gt;
Locate 1 , 7&lt;br /&gt;
Lcd Set_fan ; &amp;quot;C&amp;quot;&lt;br /&gt;
Locate 1 , 13&lt;br /&gt;
Lcd Set_alarm ; &amp;quot;C&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'set fan&lt;br /&gt;
If Fan_delay = 0 Then Fan_speed = 0&lt;br /&gt;
&lt;br /&gt;
If Temp &amp;lt; Set_fan Then&lt;br /&gt;
   If Fan_delay = 0 Then Fan_speed = 0&lt;br /&gt;
   Fan_timer = 0&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
If Temp = Set_fan And Fan_speed &amp;lt;&amp;gt; 3 Then&lt;br /&gt;
   Fan_speed = 1&lt;br /&gt;
   Fan_delay = 600&lt;br /&gt;
   If Fan_timer &amp;lt; 300 Then Incr Fan_timer&lt;br /&gt;
      If Fan_timer = 300 Then&lt;br /&gt;
      Fan_speed = 2&lt;br /&gt;
      Fan_delay = 600&lt;br /&gt;
      End If&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
If Temp &amp;gt; Set_fan Then&lt;br /&gt;
   Fan_speed = 3&lt;br /&gt;
   Fan_delay = 600&lt;br /&gt;
   Fan_timer = 300&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
'fan timers&lt;br /&gt;
If Fan_delay &amp;gt; 0 Then Decr Fan_delay&lt;br /&gt;
&lt;br /&gt;
'set fan speed&lt;br /&gt;
If Pinb.5 = 0 Then Fan_speed = Fan_speed + 2&lt;br /&gt;
If Fan_speed &amp;gt; 3 Then Fan_speed = 3&lt;br /&gt;
If Fan_speed = 0 Then Pwm1a = 255&lt;br /&gt;
If Fan_speed = 1 Then Pwm1a = 170&lt;br /&gt;
If Fan_speed = 2 Then Pwm1a = 105&lt;br /&gt;
If Fan_speed = 3 Then Pwm1a = 0&lt;br /&gt;
Locate 2 , 5&lt;br /&gt;
Lcd Fan_speed&lt;br /&gt;
If Pinb.5 = 0 Then&lt;br /&gt;
   Locate 2 , 7&lt;br /&gt;
   Lcd &amp;quot;F&amp;quot;&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
'set fan temp&lt;br /&gt;
If Pinb.3 = 1 Then C_vifte1 = 0&lt;br /&gt;
If Pinb.3 = 0 And C_vifte1 = 0 Then&lt;br /&gt;
   C_vifte1 = 1&lt;br /&gt;
   Set_fan = Set_fan + 1&lt;br /&gt;
   Eeprom_save = 3000&lt;br /&gt;
   End If&lt;br /&gt;
If Pinb.4 = 1 Then C_vifte2 = 0&lt;br /&gt;
If Pinb.4 = 0 And C_vifte2 = 0 Then&lt;br /&gt;
   C_vifte2 = 1&lt;br /&gt;
   Set_fan = Set_fan - 1&lt;br /&gt;
   Eeprom_save = 3000&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
'set alarm temp&lt;br /&gt;
If Pinb.6 = 1 Then C_alarm1 = 0&lt;br /&gt;
If Pinb.6 = 0 And C_alarm1 = 0 Then&lt;br /&gt;
   C_alarm1 = 1&lt;br /&gt;
   Set_alarm = Set_alarm + 1&lt;br /&gt;
   Eeprom_save = 3000&lt;br /&gt;
   End If&lt;br /&gt;
If Pinb.7 = 1 Then C_alarm2 = 0&lt;br /&gt;
If Pinb.7 = 0 And C_alarm2 = 0 Then&lt;br /&gt;
   C_alarm2 = 1&lt;br /&gt;
   Set_alarm = Set_alarm - 1&lt;br /&gt;
   Eeprom_save = 3000&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
'set main temp_alarm&lt;br /&gt;
If Temp &amp;gt;= Set_alarm And Alarm_timer &amp;lt; 300 Then Alarm_timer = Alarm_timer + 1&lt;br /&gt;
If Alarm_timer = 300 And Alarmled = 0 Then Alarmled = 6&lt;br /&gt;
If Temp &amp;lt; Set_alarm Then Alarm_timer = 0&lt;br /&gt;
&lt;br /&gt;
'alarmled&lt;br /&gt;
If Alarmled &amp;gt; 0 Then Alarmled = Alarmled - 1&lt;br /&gt;
If Alarmled = 4 Then Pwm1b = 0&lt;br /&gt;
If Alarmled = 1 Then Pwm1b = 255&lt;br /&gt;
&lt;br /&gt;
'eeprom save&lt;br /&gt;
If Eeprom_save &amp;gt; 0 Then&lt;br /&gt;
   Eeprom_save = Eeprom_save - 1&lt;br /&gt;
   Locate 1 , 16&lt;br /&gt;
   Lcd Chr(1)&lt;br /&gt;
   End If&lt;br /&gt;
If Eeprom_save = 1 Then&lt;br /&gt;
   Eeprom_fan = Set_fan&lt;br /&gt;
   Eeprom_alarm = Set_alarm&lt;br /&gt;
   Locate 1 , 16&lt;br /&gt;
   Lcd Chr(2)&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
'show timers&lt;br /&gt;
Locate 2 , 15&lt;br /&gt;
Alarm_timer2 = Alarm_timer / 10&lt;br /&gt;
Lcd Alarm_timer2&lt;br /&gt;
Locate 2 , 9&lt;br /&gt;
Fan_delay2 = Fan_delay / 10&lt;br /&gt;
Lcd Fan_delay2&lt;br /&gt;
Locate 2 , 12&lt;br /&gt;
Fan_timer2 = Fan_timer / 10&lt;br /&gt;
Lcd Fan_timer2&lt;br /&gt;
&lt;br /&gt;
'lifesignal&lt;br /&gt;
If Lifesignal &amp;gt; 0 Then Lifesignal = Lifesignal - 1&lt;br /&gt;
If Lifesignal = 6 Then Portb.0 = 1&lt;br /&gt;
If Lifesignal = 1 Then Portb.0 = 0&lt;br /&gt;
If Lifesignal = 0 Then Lifesignal = 21&lt;br /&gt;
&lt;br /&gt;
Reset Watchdog&lt;br /&gt;
Waitms 100&lt;br /&gt;
Goto Main&lt;br /&gt;
End&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/BASCOM-AVR_Overview</id>
		<title>BASCOM-AVR Overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/BASCOM-AVR_Overview"/>
				<updated>2014-02-04T19:54:40Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;[[File:Avr logo.png]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;''BASCOM-AVR©&amp;amp;nbsp;'''is the original&amp;amp;nbsp;'''Windows BASIC COMPILER'''&amp;amp;nbsp;for the&amp;amp;nbsp;'''AVR'''&amp;amp;nbsp;family'''.&amp;amp;nbsp;'''It is designed to run on&amp;amp;nbsp;'''XP'''/VISTA/WIN7 and WIN8''''''&lt;br /&gt;
&lt;br /&gt;
This product description is updated in 2014. But we do not change it each time we update the software. In the [http://wiki.mcselec.com/bavr/ online&amp;amp;nbsp;help] you can find a list of all statements and functions.&lt;br /&gt;
&lt;br /&gt;
=== Key Benefits ===&lt;br /&gt;
&lt;br /&gt;
*Structured&amp;amp;nbsp;'''BASIC'''&amp;amp;nbsp;with labels.&lt;br /&gt;
*Structured programming with IF-THEN-ELSE-END IF, DO-LOOP, WHILE-WEND, SELECT- CASE.&lt;br /&gt;
*Fast machine code instead of interpreted code.&lt;br /&gt;
*Variables and labels can be as long as 32 characters.&lt;br /&gt;
*Bit, Byte, Integer, Word, Long, Single, Double and String variables.&lt;br /&gt;
*Large set of Trig Floating point functions.&lt;br /&gt;
*Date &amp;amp; Time calculation functions.&lt;br /&gt;
*Compiled programs work with all AVR microprocessors that have internal memory.&lt;br /&gt;
*Statements are highly compatible with Microsoft’s VB/QB.&lt;br /&gt;
*Special commands for&amp;amp;nbsp;'''LCD'''-displays ,&amp;amp;nbsp;'''I2C'''&amp;amp;nbsp;chips and&amp;amp;nbsp;'''1WIRE'''&amp;amp;nbsp;chips, PC keyboad, matrix keyboad,&amp;amp;nbsp;'''RC5'''&amp;amp;nbsp;reception, software UART, SPI , graphical LCD, send IR RC5,'''RC6'''&amp;amp;nbsp;or Sony code.&lt;br /&gt;
*TCP/IP&amp;amp;nbsp;with W3100A/W5100/W5200/W5300 chips.&lt;br /&gt;
*Built in AVR-DOS functions like MKDIR, CHDIR, DIR, OPEN, CLOSE, etc. Just as they work in&amp;amp;nbsp; QB/VB&amp;amp;nbsp;!&lt;br /&gt;
*Local variables, user functions, library support.&lt;br /&gt;
*Integrated&amp;amp;nbsp;&amp;lt;u&amp;gt;terminal emulator with download option.&amp;lt;/u&amp;gt;.&lt;br /&gt;
*Integrated&amp;amp;nbsp;&amp;lt;u&amp;gt;simulator&amp;lt;/u&amp;gt;&amp;amp;nbsp;for testing.&lt;br /&gt;
*Integrated ISP programmer (application note AVR910.ASM).&lt;br /&gt;
*Integrated STK200 programmer and STK300 programmer. Also supported is the low cost Sample Electronics programmer. Can be built in 10 minutes! Many other programmers supported via the Universal Interface.&lt;br /&gt;
*Many supported programmer like STK500, STK600, MKII, USBASP, JTAG , Arduino&lt;br /&gt;
*Editor with statement highlighting.&lt;br /&gt;
*Context sensitive help.&lt;br /&gt;
*DEMO version compiles&amp;amp;nbsp;'''4KB'''&amp;amp;nbsp;of binary code. Well suited for the ATmega48.&lt;br /&gt;
*English an German Books available&lt;br /&gt;
*AT mouse simulator, AT keyboard simulator, I2C Slave available as add on.&lt;br /&gt;
*This product is developed in 1995 and is updated regularly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===== '''The following statements are supported ('''actually there are many more look in the on line helpfile'''):''' =====&lt;br /&gt;
&lt;br /&gt;
'''Decision and structures'''&amp;lt;br/&amp;gt;IF, THEN, ELSE, ELSEIF, END IF, DO, LOOP, WHILE, WEND, UNTIL, EXIT DO, EXIT WHILE, FOR, NEXT, TO, STEP, EXIT FOR, ON .. GOTO/GOSUB, SELECT, CASE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Input and output'''&amp;lt;br/&amp;gt;PRINT, INPUT, INKEY, PRINT, INPUTHEX, LCD, UPPERLINE, LOWERLINE,DISPLAY ON/OFF, CURSOR ON/OFF/BLINK/NOBLINK, HOME, LOCATE, SHIFTLCD LEFT/RIGHT, SHIFTCURSOR LEFT/RIGHT, CLS, DEFLCDCHAR, WAITKEY, INPUTBIN, PRINTBIN, OPEN, CLOSE, DEBOUNCE, SHIFTIN, SHIFTOUT, GETATKBD, SPC, SERIN, SEROUT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Numeric functions'''&amp;lt;br/&amp;gt;AND, OR, XOR, INC, DEC, MOD, NOT, ABS, BCD, LOG, EXP, SQR, SIN,COS,TAN,ATN, ATN2, ASIN, ACOS, FIX, ROUND, MOD, SGN, POWER, RAD2DEG, DEG2RAD, LOG10, TANH, SINH, COSH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I2C'''&amp;lt;br/&amp;gt;I2CSTART, I2CSTOP, I2CWBYTE, I2CRBYTE, I2CSEND and I2CRECEIVE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1WIRE'''&amp;lt;br/&amp;gt;1WWRITE, 1WREAD, 1WRESET, 1WIRECOUNT, 1WSEARCHFIRST, 1WSEARCHNEXT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''SPI'''&amp;lt;br/&amp;gt;SPIINIT, SPIIN, SPIOUT, SPIMOVE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''CAN'''&amp;lt;br/&amp;gt;CONFIG CANBUSMODE,&amp;amp;nbsp;CONFIG CANMOB,&amp;amp;nbsp;CANBAUD,&amp;amp;nbsp;CANRESET,&amp;amp;nbsp;CANCLEARMOB,&amp;amp;nbsp;CANCLEARALLMOBS,&amp;amp;nbsp;CANSEND,&amp;amp;nbsp;CANRECEIVE&amp;amp;nbsp;,&amp;amp;nbsp;CANID,CANSELPAGE,&amp;amp;nbsp;CANGETINTS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TCP/IP'''&amp;lt;br/&amp;gt;TCP/IP routines can be used with the W3100/IIM7000/IIM7010/W5100/W5200/W5300 modules.&lt;br /&gt;
&lt;br /&gt;
BASE64DEC,BASE64ENC,IP2STR , UDPREAD , UDPWRITE , UDPWRITESTR , TCPWRITE , TCPWRITESTR , TCPREAD ,GETDSTIP , GETDSTPORT , SOCKETSTAT , SOCKETCONNECT ,SOCKETLISTEN , GETSOCKET , SOCKETCLOSE , SETTCP , GETTCPREGS , SETTCPREGS , SETIPPROTOCOL , TCPCHECKSUM , SOCKETDISCONNECT , SNTP , TCPREADHEADER ,UDPREADHEADER&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Interrupt programming'''&amp;lt;br/&amp;gt;ON INT0/INT1/TIMER0/TIMER1/SERIAL, RETURN, ENABLE, DISABLE, COUNTERx, CAPTUREx, INTERRUPTS, CONFIG, START, LOAD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Bit manipulation'''&amp;lt;br/&amp;gt;SET, RESET, ROTATE, SHIFT, BITWAIT, TOGGLE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Variables'''&amp;lt;br/&amp;gt;DIM, BIT , BYTE , INTEGER , WORD, LONG, SINGLE, DOUBLE, STRING , DEFBIT, DEFBYTE, DEFINT, DEFWORD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Miscellaneous'''&amp;lt;br/&amp;gt;REM, ' , SWAP, END, STOP, CONST, DELAY, WAIT, WAITMS, GOTO, GOSUB, POWERDOWN, IDLE, DECLARE, CALL, SUB, END SUB, MAKEDEC, MAKEBCD, INP,OUT, ALIAS, DIM , ERASE, DATA, READ, RESTORE, INCR, DECR, PEEK, POKE, CPEEK, FUNCTION, READMAGCARD, BIN2GREY, GREY2BIN, CRC8, CRC16, CRC32, CHECKSUM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Compiler directives'''&amp;lt;br/&amp;gt;$INCLUDE, $BAUD and $CRYSTAL, $SERIALINPUT, $SERIALOUTPUT, $RAMSIZE, $RAMSTART, $DEFAULT XRAM, $ASM-$END ASM, $LCD, $EXTERNAL, $LIB.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''String manipulation'''&amp;lt;br/&amp;gt;STRING, SPACE, LEFT, RIGHT, MID, VAL, HEXVAL, LEN, STR, HEX, LTRIM, RTRIM, TRIM, LCASE, UCASE, FORMAT, FUSING, INSTR, CHARPOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''And many other functions, statements and directives'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;'''To make a program takes just a few steps&amp;amp;nbsp;:'''&lt;br /&gt;
&lt;br /&gt;
*'''Write the program in BASIC'''&lt;br /&gt;
*'''Compile it to fast machine binary code'''&lt;br /&gt;
*'''Test the result with the integrated simulator(with additional hardware you can simulate the hardware too).'''&lt;br /&gt;
*'''Program the chip with one of the integrated programmers.'''&amp;lt;br/&amp;gt;(hardware must be purchased separately)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Avr desc 1.jpg]]&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a screen shot of the editor. You can work in normal mode or project mode.&lt;br /&gt;
&lt;br /&gt;
At the left you find the Code Explorer. The Code explorer can show unused data in a different colour.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
When the Code Explorer is visible, the editor supports Proper Indent and Indent drawing.&lt;br /&gt;
&lt;br /&gt;
Indent lines can be a great visual help.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
A tool tip with info can be shown by pressing SHIFT&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Avr desc 2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Here it is clear that BDIL is a byte variable, dimensioned in the module CAN-Elektor.bas&lt;br /&gt;
&lt;br /&gt;
It will show info for constants, aliases, variables and functions.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/MCS_Wiki_Main_entry</id>
		<title>MCS Wiki Main entry</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/MCS_Wiki_Main_entry"/>
				<updated>2014-02-04T15:34:38Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Mcswiki logo.png|center|Mcswiki logo.png]]&lt;br /&gt;
&lt;br /&gt;
= BASCOM Family =&lt;br /&gt;
&lt;br /&gt;
*[[BASCOM-8051 Overview]]&lt;br /&gt;
*[[BASCOM-AVR Overview]]&lt;br /&gt;
&lt;br /&gt;
= BASCOM Manuals =&lt;br /&gt;
&lt;br /&gt;
*[http://wiki.mcselec.com/bavr/ BASCOM-AVR manual]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= User projects =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 80%&amp;quot; align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;categorytree mode=&amp;quot;pages&amp;quot;&amp;gt;Projects&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
| &amp;lt;br/&amp;gt;&lt;br /&gt;
| &amp;lt;categorytree mode=&amp;quot;pages&amp;quot;&amp;gt;Arduino Ethernet with Bascom-AVR&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 80%&amp;quot; align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;categorytree mode=&amp;quot;pages&amp;quot;&amp;gt;Miscellaneous stuff&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
| &amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Languages}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/BASCOM-AVR_Overview</id>
		<title>BASCOM-AVR Overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/BASCOM-AVR_Overview"/>
				<updated>2014-02-04T15:33:14Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p style=&amp;quot;text-align: center;&amp;quot;&amp;gt;[[File:Avr logo.png]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;''BASCOM-AVR©&amp;amp;nbsp;'''is the original&amp;amp;nbsp;'''Windows BASIC COMPILER'''&amp;amp;nbsp;for the&amp;amp;nbsp;'''AVR'''&amp;amp;nbsp;family'''.&amp;amp;nbsp;'''It is designed to run on&amp;amp;nbsp;'''XP'''/VISTA/WIN7 and WIN8''''''&lt;br /&gt;
&lt;br /&gt;
This product description is updated in 2014. But we do not change it each time we update the software. In the [http://wiki.mcselec.com/bavr/ online&amp;amp;nbsp;help] you can find a list of all statements and functions.&lt;br /&gt;
&lt;br /&gt;
=== Key Benefits ===&lt;br /&gt;
&lt;br /&gt;
*Structured&amp;amp;nbsp;'''BASIC'''&amp;amp;nbsp;with labels.&lt;br /&gt;
*Structured programming with IF-THEN-ELSE-END IF, DO-LOOP, WHILE-WEND, SELECT- CASE.&lt;br /&gt;
*Fast machine code instead of interpreted code.&lt;br /&gt;
*Variables and labels can be as long as 32 characters.&lt;br /&gt;
*Bit, Byte, Integer, Word, Long, Single, Double and String variables.&lt;br /&gt;
*Large set of Trig Floating point functions.&lt;br /&gt;
*Date &amp;amp; Time calculation functions.&lt;br /&gt;
*Compiled programs work with all AVR microprocessors that have internal memory.&lt;br /&gt;
*Statements are highly compatible with Microsoft’s VB/QB.&lt;br /&gt;
*Special commands for&amp;amp;nbsp;'''LCD'''-displays ,&amp;amp;nbsp;'''I2C'''&amp;amp;nbsp;chips and&amp;amp;nbsp;'''1WIRE'''&amp;amp;nbsp;chips, PC keyboad, matrix keyboad,&amp;amp;nbsp;'''RC5'''&amp;amp;nbsp;reception, software UART, SPI , graphical LCD, send IR RC5,'''RC6'''&amp;amp;nbsp;or Sony code.&lt;br /&gt;
*TCP/IP&amp;amp;nbsp;with W3100A/W5100/W5200/W5300 chips.&lt;br /&gt;
*Built in AVR-DOS functions like MKDIR, CHDIR, DIR, OPEN, CLOSE, etc. Just as they work in&amp;amp;nbsp; QB/VB&amp;amp;nbsp;!&lt;br /&gt;
*Local variables, user functions, library support.&lt;br /&gt;
*Integrated&amp;amp;nbsp;&amp;lt;u&amp;gt;terminal emulator with download option.&amp;lt;/u&amp;gt;.&lt;br /&gt;
*Integrated&amp;amp;nbsp;&amp;lt;u&amp;gt;simulator&amp;lt;/u&amp;gt;&amp;amp;nbsp;for testing.&lt;br /&gt;
*Integrated ISP programmer (application note AVR910.ASM).&lt;br /&gt;
*Integrated STK200 programmer and STK300 programmer. Also supported is the low cost Sample Electronics programmer. Can be built in 10 minutes! Many other programmers supported via the Universal Interface.&lt;br /&gt;
*Many supported programmer like STK500, STK600, MKII, USBASP, JTAG , Arduino&lt;br /&gt;
*Editor with statement highlighting.&lt;br /&gt;
*Context sensitive help.&lt;br /&gt;
*DEMO version compiles&amp;amp;nbsp;'''4KB'''&amp;amp;nbsp;of binary code. Well suited for the ATmega48.&lt;br /&gt;
*English an German Books available&lt;br /&gt;
*AT mouse simulator, AT keyboard simulator, I2C Slave available as add on.&lt;br /&gt;
*This product is developed in 1995 and is updated regularly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===== '''The following statements are supported ('''actually there are many more look in the on line helpfile'''):''' =====&lt;br /&gt;
&lt;br /&gt;
'''Decision and structures'''&amp;lt;br/&amp;gt;IF, THEN, ELSE, ELSEIF, END IF, DO, LOOP, WHILE, WEND, UNTIL, EXIT DO, EXIT WHILE, FOR, NEXT, TO, STEP, EXIT FOR, ON .. GOTO/GOSUB, SELECT, CASE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Input and output'''&amp;lt;br/&amp;gt;PRINT, INPUT, INKEY, PRINT, INPUTHEX, LCD, UPPERLINE, LOWERLINE,DISPLAY ON/OFF, CURSOR ON/OFF/BLINK/NOBLINK, HOME, LOCATE, SHIFTLCD LEFT/RIGHT, SHIFTCURSOR LEFT/RIGHT, CLS, DEFLCDCHAR, WAITKEY, INPUTBIN, PRINTBIN, OPEN, CLOSE, DEBOUNCE, SHIFTIN, SHIFTOUT, GETATKBD, SPC, SERIN, SEROUT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Numeric functions'''&amp;lt;br/&amp;gt;AND, OR, XOR, INC, DEC, MOD, NOT, ABS, BCD, LOG, EXP, SQR, SIN,COS,TAN,ATN, ATN2, ASIN, ACOS, FIX, ROUND, MOD, SGN, POWER, RAD2DEG, DEG2RAD, LOG10, TANH, SINH, COSH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I2C'''&amp;lt;br/&amp;gt;I2CSTART, I2CSTOP, I2CWBYTE, I2CRBYTE, I2CSEND and I2CRECEIVE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1WIRE'''&amp;lt;br/&amp;gt;1WWRITE, 1WREAD, 1WRESET, 1WIRECOUNT, 1WSEARCHFIRST, 1WSEARCHNEXT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''SPI'''&amp;lt;br/&amp;gt;SPIINIT, SPIIN, SPIOUT, SPIMOVE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''CAN'''&amp;lt;br/&amp;gt;CONFIG CANBUSMODE,&amp;amp;nbsp;CONFIG CANMOB,&amp;amp;nbsp;CANBAUD,&amp;amp;nbsp;CANRESET,&amp;amp;nbsp;CANCLEARMOB,&amp;amp;nbsp;CANCLEARALLMOBS,&amp;amp;nbsp;CANSEND,&amp;amp;nbsp;CANRECEIVE&amp;amp;nbsp;,&amp;amp;nbsp;CANID,CANSELPAGE,&amp;amp;nbsp;CANGETINTS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TCP/IP'''&amp;lt;br/&amp;gt;TCP/IP routines can be used with the W3100/IIM7000/IIM7010/W5100/W5200/W5300 modules.&lt;br /&gt;
&lt;br /&gt;
BASE64DEC&amp;amp;nbsp;,&amp;amp;nbsp;BASE64ENC&amp;amp;nbsp;,&amp;amp;nbsp;IP2STR&amp;amp;nbsp;,&amp;amp;nbsp;UDPREAD&amp;amp;nbsp;,&amp;amp;nbsp;UDPWRITE&amp;amp;nbsp;,&amp;amp;nbsp;UDPWRITESTR&amp;amp;nbsp;,&amp;amp;nbsp;TCPWRITE&amp;amp;nbsp;,&amp;amp;nbsp;TCPWRITESTR&amp;amp;nbsp;,&amp;amp;nbsp;TCPREAD&amp;amp;nbsp;,GETDSTIP&amp;amp;nbsp;,&amp;amp;nbsp;GETDSTPORT&amp;amp;nbsp;,&amp;amp;nbsp;SOCKETSTAT&amp;amp;nbsp;,&amp;amp;nbsp;SOCKETCONNECT&amp;amp;nbsp;,SOCKETLISTEN&amp;amp;nbsp;,&amp;amp;nbsp;&amp;amp;nbsp;GETSOCKET&amp;amp;nbsp;,&amp;amp;nbsp;SOCKETCLOSE&amp;amp;nbsp;,&amp;amp;nbsp;SETTCP&amp;amp;nbsp;,&amp;amp;nbsp;GETTCPREGS&amp;amp;nbsp;,&amp;amp;nbsp;SETTCPREGS&amp;amp;nbsp;,&amp;amp;nbsp;SETIPPROTOCOL&amp;amp;nbsp;,&amp;amp;nbsp;TCPCHECKSUM&amp;amp;nbsp;,&amp;amp;nbsp;&amp;amp;nbsp;SOCKETDISCONNECT&amp;amp;nbsp;,&amp;amp;nbsp;SNTP&amp;amp;nbsp;,&amp;amp;nbsp;TCPREADHEADER&amp;amp;nbsp;,UDPREADHEADER&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Interrupt programming'''&amp;lt;br/&amp;gt;ON INT0/INT1/TIMER0/TIMER1/SERIAL, RETURN, ENABLE, DISABLE, COUNTERx, CAPTUREx, INTERRUPTS, CONFIG, START, LOAD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Bit manipulation'''&amp;lt;br/&amp;gt;SET, RESET, ROTATE, SHIFT, BITWAIT, TOGGLE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Variables'''&amp;lt;br/&amp;gt;DIM, BIT , BYTE , INTEGER , WORD, LONG, SINGLE, DOUBLE, STRING , DEFBIT, DEFBYTE, DEFINT, DEFWORD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Miscellaneous'''&amp;lt;br/&amp;gt;REM, ' , SWAP, END, STOP, CONST, DELAY, WAIT, WAITMS, GOTO, GOSUB, POWERDOWN, IDLE, DECLARE, CALL, SUB, END SUB, MAKEDEC, MAKEBCD, INP,OUT, ALIAS, DIM , ERASE, DATA, READ, RESTORE, INCR, DECR, PEEK, POKE, CPEEK, FUNCTION, READMAGCARD, BIN2GREY, GREY2BIN, CRC8, CRC16, CRC32, CHECKSUM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Compiler directives'''&amp;lt;br/&amp;gt;$INCLUDE, $BAUD and $CRYSTAL, $SERIALINPUT, $SERIALOUTPUT, $RAMSIZE, $RAMSTART, $DEFAULT XRAM, $ASM-$END ASM, $LCD, $EXTERNAL, $LIB.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''String manipulation'''&amp;lt;br/&amp;gt;STRING, SPACE, LEFT, RIGHT, MID, VAL, HEXVAL, LEN, STR, HEX, LTRIM, RTRIM, TRIM, LCASE, UCASE, FORMAT, FUSING, INSTR, CHARPOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''And many other functions, statements and directives'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;'''To make a program takes just a few steps&amp;amp;nbsp;:'''&lt;br /&gt;
&lt;br /&gt;
*'''Write the program in BASIC'''&lt;br /&gt;
*'''Compile it to fast machine binary code'''&lt;br /&gt;
*'''Test the result with the integrated simulator(with additional hardware you can simulate the hardware too).'''&lt;br /&gt;
*'''Program the chip with one of the integrated programmers.'''&amp;lt;br/&amp;gt;(hardware must be purchased separately)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Avr desc 1.jpg]]&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a screen shot of the editor. You can work in normal mode or project mode.&lt;br /&gt;
&lt;br /&gt;
At the left you find the Code Explorer. The Code explorer can show unused data in a different colour.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
When the Code Explorer is visible, the editor supports Proper Indent and Indent drawing.&lt;br /&gt;
&lt;br /&gt;
Indent lines can be a great visual help.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
A tool tip with info can be shown by pressing SHIFT&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Avr desc 2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Here it is clear that BDIL is a byte variable, dimensioned in the module CAN-Elektor.bas&lt;br /&gt;
&lt;br /&gt;
It will show info for constants, aliases, variables and functions.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/BASCOM-AVR_Overview</id>
		<title>BASCOM-AVR Overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/BASCOM-AVR_Overview"/>
				<updated>2014-02-04T15:31:24Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''BASCOM-AVR©&amp;amp;nbsp;'''is the original&amp;amp;nbsp;'''Windows BASIC COMPILER'''&amp;amp;nbsp;for the&amp;amp;nbsp;'''AVR'''&amp;amp;nbsp;family'''.&amp;amp;nbsp;'''It is designed to run on&amp;amp;nbsp;'''XP'''/VISTA/WIN7 and WIN8''''''&lt;br /&gt;
&lt;br /&gt;
This product description is updated in 2014. But we do not change it each time we update the software. In the [http://wiki.mcselec.com/bavr/ online&amp;amp;nbsp;help] you can find a list of all statements and functions.&lt;br /&gt;
&lt;br /&gt;
=== Key Benefits ===&lt;br /&gt;
&lt;br /&gt;
*Structured&amp;amp;nbsp;'''BASIC'''&amp;amp;nbsp;with labels.&lt;br /&gt;
*Structured programming with IF-THEN-ELSE-END IF, DO-LOOP, WHILE-WEND, SELECT- CASE.&lt;br /&gt;
*Fast machine code instead of interpreted code.&lt;br /&gt;
*Variables and labels can be as long as 32 characters.&lt;br /&gt;
*Bit, Byte, Integer, Word, Long, Single, Double and String variables.&lt;br /&gt;
*Large set of Trig Floating point functions.&lt;br /&gt;
*Date &amp;amp; Time calculation functions.&lt;br /&gt;
*Compiled programs work with all AVR microprocessors that have internal memory.&lt;br /&gt;
*Statements are highly compatible with Microsoft’s VB/QB.&lt;br /&gt;
*Special commands for&amp;amp;nbsp;'''LCD'''-displays ,&amp;amp;nbsp;'''I2C'''&amp;amp;nbsp;chips and&amp;amp;nbsp;'''1WIRE'''&amp;amp;nbsp;chips, PC keyboad, matrix keyboad,&amp;amp;nbsp;'''RC5'''&amp;amp;nbsp;reception, software UART, SPI , graphical LCD, send IR RC5,'''RC6'''&amp;amp;nbsp;or Sony code.&lt;br /&gt;
*TCP/IP&amp;amp;nbsp;with W3100A/W5100/W5200/W5300 chips.&lt;br /&gt;
*Built in AVR-DOS functions like MKDIR, CHDIR, DIR, OPEN, CLOSE, etc. Just as they work in&amp;amp;nbsp; QB/VB&amp;amp;nbsp;!&lt;br /&gt;
*Local variables, user functions, library support.&lt;br /&gt;
*Integrated&amp;amp;nbsp;&amp;lt;u&amp;gt;terminal emulator with download option.&amp;lt;/u&amp;gt;.&lt;br /&gt;
*Integrated&amp;amp;nbsp;&amp;lt;u&amp;gt;simulator&amp;lt;/u&amp;gt;&amp;amp;nbsp;for testing.&lt;br /&gt;
*Integrated ISP programmer (application note AVR910.ASM).&lt;br /&gt;
*Integrated STK200 programmer and STK300 programmer. Also supported is the low cost Sample Electronics programmer. Can be built in 10 minutes! Many other programmers supported via the Universal Interface.&lt;br /&gt;
*Many supported programmer like STK500, STK600, MKII, USBASP, JTAG , Arduino&lt;br /&gt;
*Editor with statement highlighting.&lt;br /&gt;
*Context sensitive help.&lt;br /&gt;
*DEMO version compiles&amp;amp;nbsp;'''4KB'''&amp;amp;nbsp;of binary code. Well suited for the ATmega48.&lt;br /&gt;
*English an German Books available&lt;br /&gt;
*AT mouse simulator, AT keyboard simulator, I2C Slave available as add on.&lt;br /&gt;
*This product is developed in 1995 and is updated regularly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===== '''The following statements are supported ('''actually there are many more look in the on line helpfile'''):''' =====&lt;br /&gt;
&lt;br /&gt;
'''Decision and structures'''&amp;lt;br/&amp;gt;IF, THEN, ELSE, ELSEIF, END IF, DO, LOOP, WHILE, WEND, UNTIL, EXIT DO, EXIT WHILE, FOR, NEXT, TO, STEP, EXIT FOR, ON .. GOTO/GOSUB, SELECT, CASE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Input and output'''&amp;lt;br/&amp;gt;PRINT, INPUT, INKEY, PRINT, INPUTHEX, LCD, UPPERLINE, LOWERLINE,DISPLAY ON/OFF, CURSOR ON/OFF/BLINK/NOBLINK, HOME, LOCATE, SHIFTLCD LEFT/RIGHT, SHIFTCURSOR LEFT/RIGHT, CLS, DEFLCDCHAR, WAITKEY, INPUTBIN, PRINTBIN, OPEN, CLOSE, DEBOUNCE, SHIFTIN, SHIFTOUT, GETATKBD, SPC, SERIN, SEROUT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Numeric functions'''&amp;lt;br/&amp;gt;AND, OR, XOR, INC, DEC, MOD, NOT, ABS, BCD, LOG, EXP, SQR, SIN,COS,TAN,ATN, ATN2, ASIN, ACOS, FIX, ROUND, MOD, SGN, POWER, RAD2DEG, DEG2RAD, LOG10, TANH, SINH, COSH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I2C'''&amp;lt;br/&amp;gt;I2CSTART, I2CSTOP, I2CWBYTE, I2CRBYTE, I2CSEND and I2CRECEIVE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1WIRE'''&amp;lt;br/&amp;gt;1WWRITE, 1WREAD, 1WRESET, 1WIRECOUNT, 1WSEARCHFIRST, 1WSEARCHNEXT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''SPI'''&amp;lt;br/&amp;gt;SPIINIT, SPIIN, SPIOUT, SPIMOVE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''CAN'''&amp;lt;br/&amp;gt;CONFIG CANBUSMODE,&amp;amp;nbsp;CONFIG CANMOB,&amp;amp;nbsp;CANBAUD,&amp;amp;nbsp;CANRESET,&amp;amp;nbsp;CANCLEARMOB,&amp;amp;nbsp;CANCLEARALLMOBS,&amp;amp;nbsp;CANSEND,&amp;amp;nbsp;CANRECEIVE&amp;amp;nbsp;,&amp;amp;nbsp;CANID,CANSELPAGE,&amp;amp;nbsp;CANGETINTS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TCP/IP'''&amp;lt;br/&amp;gt;TCP/IP routines can be used with the W3100/IIM7000/IIM7010/W5100/W5200/W5300 modules.&lt;br /&gt;
&lt;br /&gt;
BASE64DEC&amp;amp;nbsp;,&amp;amp;nbsp;BASE64ENC&amp;amp;nbsp;,&amp;amp;nbsp;IP2STR&amp;amp;nbsp;,&amp;amp;nbsp;UDPREAD&amp;amp;nbsp;,&amp;amp;nbsp;UDPWRITE&amp;amp;nbsp;,&amp;amp;nbsp;UDPWRITESTR&amp;amp;nbsp;,&amp;amp;nbsp;TCPWRITE&amp;amp;nbsp;,&amp;amp;nbsp;TCPWRITESTR&amp;amp;nbsp;,&amp;amp;nbsp;TCPREAD&amp;amp;nbsp;,GETDSTIP&amp;amp;nbsp;,&amp;amp;nbsp;GETDSTPORT&amp;amp;nbsp;,&amp;amp;nbsp;SOCKETSTAT&amp;amp;nbsp;,&amp;amp;nbsp;SOCKETCONNECT&amp;amp;nbsp;,SOCKETLISTEN&amp;amp;nbsp;,&amp;amp;nbsp;&amp;amp;nbsp;GETSOCKET&amp;amp;nbsp;,&amp;amp;nbsp;SOCKETCLOSE&amp;amp;nbsp;,&amp;amp;nbsp;SETTCP&amp;amp;nbsp;,&amp;amp;nbsp;GETTCPREGS&amp;amp;nbsp;,&amp;amp;nbsp;SETTCPREGS&amp;amp;nbsp;,&amp;amp;nbsp;SETIPPROTOCOL&amp;amp;nbsp;,&amp;amp;nbsp;TCPCHECKSUM&amp;amp;nbsp;,&amp;amp;nbsp;&amp;amp;nbsp;SOCKETDISCONNECT&amp;amp;nbsp;,&amp;amp;nbsp;SNTP&amp;amp;nbsp;,&amp;amp;nbsp;TCPREADHEADER&amp;amp;nbsp;,UDPREADHEADER&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Interrupt programming'''&amp;lt;br/&amp;gt;ON INT0/INT1/TIMER0/TIMER1/SERIAL, RETURN, ENABLE, DISABLE, COUNTERx, CAPTUREx, INTERRUPTS, CONFIG, START, LOAD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Bit manipulation'''&amp;lt;br/&amp;gt;SET, RESET, ROTATE, SHIFT, BITWAIT, TOGGLE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Variables'''&amp;lt;br/&amp;gt;DIM, BIT , BYTE , INTEGER , WORD, LONG, SINGLE, DOUBLE, STRING , DEFBIT, DEFBYTE, DEFINT, DEFWORD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Miscellaneous'''&amp;lt;br/&amp;gt;REM, ' , SWAP, END, STOP, CONST, DELAY, WAIT, WAITMS, GOTO, GOSUB, POWERDOWN, IDLE, DECLARE, CALL, SUB, END SUB, MAKEDEC, MAKEBCD, INP,OUT, ALIAS, DIM , ERASE, DATA, READ, RESTORE, INCR, DECR, PEEK, POKE, CPEEK, FUNCTION, READMAGCARD, BIN2GREY, GREY2BIN, CRC8, CRC16, CRC32, CHECKSUM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Compiler directives'''&amp;lt;br/&amp;gt;$INCLUDE, $BAUD and $CRYSTAL, $SERIALINPUT, $SERIALOUTPUT, $RAMSIZE, $RAMSTART, $DEFAULT XRAM, $ASM-$END ASM, $LCD, $EXTERNAL, $LIB.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''String manipulation'''&amp;lt;br/&amp;gt;STRING, SPACE, LEFT, RIGHT, MID, VAL, HEXVAL, LEN, STR, HEX, LTRIM, RTRIM, TRIM, LCASE, UCASE, FORMAT, FUSING, INSTR, CHARPOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''And many other functions, statements and directives'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;'''To make a program takes just a few steps&amp;amp;nbsp;:'''&lt;br /&gt;
&lt;br /&gt;
*'''Write the program in BASIC'''&lt;br /&gt;
*'''Compile it to fast machine binary code'''&lt;br /&gt;
*'''Test the result with the integrated simulator(with additional hardware you can simulate the hardware too).'''&lt;br /&gt;
*'''Program the chip with one of the integrated programmers.'''&amp;lt;br/&amp;gt;(hardware must be purchased separately)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Avr desc 1.jpg]]&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a screen shot of the editor. You can work in normal mode or project mode.&lt;br /&gt;
&lt;br /&gt;
At the left you find the Code Explorer. The Code explorer can show unused data in a different colour.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
When the Code Explorer is visible, the editor supports Proper Indent and Indent drawing.&lt;br /&gt;
&lt;br /&gt;
Indent lines can be a great visual help.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
A tool tip with info can be shown by pressing SHIFT&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Avr desc 2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Here it is clear that BDIL is a byte variable, dimensioned in the module CAN-Elektor.bas&lt;br /&gt;
&lt;br /&gt;
It will show info for constants, aliases, variables and functions.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/BASCOM-AVR_Overview</id>
		<title>BASCOM-AVR Overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/BASCOM-AVR_Overview"/>
				<updated>2014-02-04T15:27:18Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''BASCOM-AVR©&amp;amp;nbsp;'''is the original&amp;amp;nbsp;'''Windows BASIC COMPILER'''&amp;amp;nbsp;for the&amp;amp;nbsp;'''AVR'''&amp;amp;nbsp;family'''.&amp;amp;nbsp;'''It is designed to run on&amp;amp;nbsp;'''XP'''/VISTA/WIN7 and WIN8''''''&lt;br /&gt;
&lt;br /&gt;
This product description is updated in 2014. But we do not change it each time we update the software. In the [http://wiki.mcselec.com/bavr/ online&amp;amp;nbsp;help] you can find a list of all statements and functions.&lt;br /&gt;
&lt;br /&gt;
=== Key Benefits ===&lt;br /&gt;
&lt;br /&gt;
*Structured&amp;amp;nbsp;'''BASIC'''&amp;amp;nbsp;with labels.&lt;br /&gt;
*Structured programming with IF-THEN-ELSE-END IF, DO-LOOP, WHILE-WEND, SELECT- CASE.&lt;br /&gt;
*Fast machine code instead of interpreted code.&lt;br /&gt;
*Variables and labels can be as long as 32 characters.&lt;br /&gt;
*Bit, Byte, Integer, Word, Long, Single, Double and String variables.&lt;br /&gt;
*Large set of Trig Floating point functions.&lt;br /&gt;
*Date &amp;amp; Time calculation functions.&lt;br /&gt;
*Compiled programs work with all AVR microprocessors that have internal memory.&lt;br /&gt;
*Statements are highly compatible with Microsoft’s VB/QB.&lt;br /&gt;
*Special commands for&amp;amp;nbsp;'''LCD'''-displays ,&amp;amp;nbsp;'''I2C'''&amp;amp;nbsp;chips and&amp;amp;nbsp;'''1WIRE'''&amp;amp;nbsp;chips, PC keyboad, matrix keyboad,&amp;amp;nbsp;'''RC5'''&amp;amp;nbsp;reception, software UART, SPI , graphical LCD, send IR RC5,'''RC6'''&amp;amp;nbsp;or Sony code.&lt;br /&gt;
*TCP/IP&amp;amp;nbsp;with W3100A/W5100/W5200/W5300 chips.&lt;br /&gt;
*Built in AVR-DOS functions like MKDIR, CHDIR, DIR, OPEN, CLOSE, etc. Just as they work in&amp;amp;nbsp; QB/VB&amp;amp;nbsp;!&lt;br /&gt;
*Local variables, user functions, library support.&lt;br /&gt;
*Integrated&amp;amp;nbsp;&amp;lt;u&amp;gt;terminal emulator with download option.&amp;lt;/u&amp;gt;.&lt;br /&gt;
*Integrated&amp;amp;nbsp;&amp;lt;u&amp;gt;simulator&amp;lt;/u&amp;gt;&amp;amp;nbsp;for testing.&lt;br /&gt;
*Integrated ISP programmer (application note AVR910.ASM).&lt;br /&gt;
*Integrated STK200 programmer and STK300 programmer. Also supported is the low cost Sample Electronics programmer. Can be built in 10 minutes! Many other programmers supported via the Universal Interface.&lt;br /&gt;
*Many supported programmer like STK500, STK600, MKII, USBASP, JTAG , Arduino&lt;br /&gt;
*Editor with statement highlighting.&lt;br /&gt;
*Context sensitive help.&lt;br /&gt;
*DEMO version compiles&amp;amp;nbsp;'''4KB'''&amp;amp;nbsp;of binary code. Well suited for the ATmega48.&lt;br /&gt;
*[http://www.mcselec.com/commerce/books.htm English an German Books available]&lt;br /&gt;
*AT mouse simulator, AT keyboard simulator, I2C Slave available as add on.&lt;br /&gt;
*This product is developed in 1995 and is updated regularly.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===== '''The following statements are supported ('''actually there are many more look in the on line helpfile'''):''' =====&lt;br /&gt;
&lt;br /&gt;
'''Decision and structures'''&amp;lt;br/&amp;gt;IF, THEN, ELSE, ELSEIF, END IF, DO, LOOP, WHILE, WEND, UNTIL, EXIT DO, EXIT WHILE, FOR, NEXT, TO, STEP, EXIT FOR, ON .. GOTO/GOSUB, SELECT, CASE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Input and output'''&amp;lt;br/&amp;gt;PRINT, INPUT, INKEY, PRINT, INPUTHEX, LCD, UPPERLINE, LOWERLINE,DISPLAY ON/OFF, CURSOR ON/OFF/BLINK/NOBLINK, HOME, LOCATE, SHIFTLCD LEFT/RIGHT, SHIFTCURSOR LEFT/RIGHT, CLS, DEFLCDCHAR, WAITKEY, INPUTBIN, PRINTBIN, OPEN, CLOSE, DEBOUNCE, SHIFTIN, SHIFTOUT, GETATKBD, SPC, SERIN, SEROUT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Numeric functions'''&amp;lt;br/&amp;gt;AND, OR, XOR, INC, DEC, MOD, NOT, ABS, BCD, LOG, EXP, SQR, SIN,COS,TAN,ATN, ATN2, ASIN, ACOS, FIX, ROUND, MOD, SGN, POWER, RAD2DEG, DEG2RAD, LOG10, TANH, SINH, COSH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''I2C'''&amp;lt;br/&amp;gt;I2CSTART, I2CSTOP, I2CWBYTE, I2CRBYTE, I2CSEND and I2CRECEIVE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1WIRE'''&amp;lt;br/&amp;gt;1WWRITE, 1WREAD, 1WRESET, 1WIRECOUNT, 1WSEARCHFIRST, 1WSEARCHNEXT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''SPI'''&amp;lt;br/&amp;gt;SPIINIT, SPIIN, SPIOUT, SPIMOVE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''CAN'''&amp;lt;br/&amp;gt;CONFIG CANBUSMODE,&amp;amp;nbsp;CONFIG CANMOB,&amp;amp;nbsp;CANBAUD,&amp;amp;nbsp;CANRESET,&amp;amp;nbsp;CANCLEARMOB,&amp;amp;nbsp;CANCLEARALLMOBS,&amp;amp;nbsp;CANSEND,&amp;amp;nbsp;CANRECEIVE&amp;amp;nbsp;,&amp;amp;nbsp;CANID,CANSELPAGE,&amp;amp;nbsp;CANGETINTS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TCP/IP'''&amp;lt;br/&amp;gt;TCP/IP routines can be used with the W3100/IIM7000/IIM7010/W5100/W5200/W5300 modules.&lt;br /&gt;
&lt;br /&gt;
BASE64DEC&amp;amp;nbsp;,&amp;amp;nbsp;BASE64ENC&amp;amp;nbsp;,&amp;amp;nbsp;IP2STR&amp;amp;nbsp;,&amp;amp;nbsp;UDPREAD&amp;amp;nbsp;,&amp;amp;nbsp;UDPWRITE&amp;amp;nbsp;,&amp;amp;nbsp;UDPWRITESTR&amp;amp;nbsp;,&amp;amp;nbsp;TCPWRITE&amp;amp;nbsp;,&amp;amp;nbsp;TCPWRITESTR&amp;amp;nbsp;,&amp;amp;nbsp;TCPREAD&amp;amp;nbsp;,GETDSTIP&amp;amp;nbsp;,&amp;amp;nbsp;GETDSTPORT&amp;amp;nbsp;,&amp;amp;nbsp;SOCKETSTAT&amp;amp;nbsp;,&amp;amp;nbsp;SOCKETCONNECT&amp;amp;nbsp;,SOCKETLISTEN&amp;amp;nbsp;,&amp;amp;nbsp;&amp;amp;nbsp;GETSOCKET&amp;amp;nbsp;,&amp;amp;nbsp;SOCKETCLOSE&amp;amp;nbsp;,&amp;amp;nbsp;SETTCP&amp;amp;nbsp;,&amp;amp;nbsp;GETTCPREGS&amp;amp;nbsp;,&amp;amp;nbsp;SETTCPREGS&amp;amp;nbsp;,&amp;amp;nbsp;SETIPPROTOCOL&amp;amp;nbsp;,&amp;amp;nbsp;TCPCHECKSUM&amp;amp;nbsp;,&amp;amp;nbsp;&amp;amp;nbsp;SOCKETDISCONNECT&amp;amp;nbsp;,&amp;amp;nbsp;SNTP&amp;amp;nbsp;,&amp;amp;nbsp;TCPREADHEADER&amp;amp;nbsp;,UDPREADHEADER&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Interrupt programming'''&amp;lt;br/&amp;gt;ON INT0/INT1/TIMER0/TIMER1/SERIAL, RETURN, ENABLE, DISABLE, COUNTERx, CAPTUREx, INTERRUPTS, CONFIG, START, LOAD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Bit manipulation'''&amp;lt;br/&amp;gt;SET, RESET, ROTATE, SHIFT, BITWAIT, TOGGLE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Variables'''&amp;lt;br/&amp;gt;DIM, BIT , BYTE , INTEGER , WORD, LONG, SINGLE, DOUBLE, STRING , DEFBIT, DEFBYTE, DEFINT, DEFWORD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Miscellaneous'''&amp;lt;br/&amp;gt;REM, ' , SWAP, END, STOP, CONST, DELAY, WAIT, WAITMS, GOTO, GOSUB, POWERDOWN, IDLE, DECLARE, CALL, SUB, END SUB, MAKEDEC, MAKEBCD, INP,OUT, ALIAS, DIM , ERASE, DATA, READ, RESTORE, INCR, DECR, PEEK, POKE, CPEEK, FUNCTION, READMAGCARD, BIN2GREY, GREY2BIN, CRC8, CRC16, CRC32, CHECKSUM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Compiler directives'''&amp;lt;br/&amp;gt;$INCLUDE, $BAUD and $CRYSTAL, $SERIALINPUT, $SERIALOUTPUT, $RAMSIZE, $RAMSTART, $DEFAULT XRAM, $ASM-$END ASM, $LCD, $EXTERNAL, $LIB.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''String manipulation'''&amp;lt;br/&amp;gt;STRING, SPACE, LEFT, RIGHT, MID, VAL, HEXVAL, LEN, STR, HEX, LTRIM, RTRIM, TRIM, LCASE, UCASE, FORMAT, FUSING, INSTR, CHARPOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''And many other functions, statements and directives'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;'''To make a program takes just a few steps&amp;amp;nbsp;:'''&lt;br /&gt;
&lt;br /&gt;
*'''Write the program in BASIC'''&lt;br /&gt;
*'''Compile it to fast machine binary code'''&lt;br /&gt;
*'''Test the result with the integrated simulator(with additional hardware you can simulate the hardware too).'''&lt;br /&gt;
*'''Program the chip with one of the integrated programmers.'''&amp;lt;br/&amp;gt;(hardware must be purchased separately)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Avr desc 1.jpg]]&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a screen shot of the editor. You can work in normal mode or project mode.&lt;br /&gt;
&lt;br /&gt;
At the left you find the Code Explorer. The Code explorer can show unused data in a different colour.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
When the Code Explorer is visible, the editor supports Proper Indent and Indent drawing.&lt;br /&gt;
&lt;br /&gt;
Indent lines can be a great visual help.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
A tool tip with info can be shown by pressing SHIFT&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Avr desc 2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Here it is clear that BDIL is a byte variable, dimensioned in the module CAN-Elektor.bas&lt;br /&gt;
&lt;br /&gt;
It will show info for constants, aliases, variables and functions.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/File:Avr_desc_2.jpg</id>
		<title>File:Avr desc 2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/File:Avr_desc_2.jpg"/>
				<updated>2014-02-04T15:21:44Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/File:Avr_desc_1.jpg</id>
		<title>File:Avr desc 1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/File:Avr_desc_1.jpg"/>
				<updated>2014-02-04T15:21:30Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/BASCOM-AVR_Overview</id>
		<title>BASCOM-AVR Overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/BASCOM-AVR_Overview"/>
				<updated>2014-02-04T15:21:11Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;'''BASCOM-AVR©&amp;amp;nbsp;'''is the original&amp;amp;nbsp;'''Windows BASIC COMPILER'''&amp;amp;nbsp;for the&amp;amp;nbsp;'''AVR'''&amp;amp;nbsp;family'''.&amp;amp;nbsp;'''It is designed to run on&amp;amp;nbsp;'''XP'''/VISTA/WIN7...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''BASCOM-AVR©&amp;amp;nbsp;'''is the original&amp;amp;nbsp;'''Windows BASIC COMPILER'''&amp;amp;nbsp;for the&amp;amp;nbsp;'''AVR'''&amp;amp;nbsp;family'''.&amp;amp;nbsp;'''It is designed to run on&amp;amp;nbsp;'''XP'''/VISTA/WIN7 and WIN8''''''&lt;br /&gt;
&lt;br /&gt;
This product description is updated in 2014. But we do not change it each time we update the software. In the&amp;amp;nbsp;[http://avrhelp.mcselec.com/index.html on line&amp;amp;nbsp;]help you can find a list of all statements and functions.&lt;br /&gt;
&lt;br /&gt;
=== Key Benefits ===&lt;br /&gt;
&lt;br /&gt;
*Structured&amp;amp;nbsp;'''BASIC'''&amp;amp;nbsp;with labels.&lt;br /&gt;
*Structured programming with IF-THEN-ELSE-END IF, DO-LOOP, WHILE-WEND, SELECT- CASE.&lt;br /&gt;
*Fast machine code instead of interpreted code.&lt;br /&gt;
*Variables and labels can be as long as 32 characters.&lt;br /&gt;
*Bit, Byte, Integer, Word, Long, Single, Double and String variables.&lt;br /&gt;
*Large set of Trig Floating point functions.&lt;br /&gt;
*Date &amp;amp; Time calculation functions.&lt;br /&gt;
*Compiled programs work with all AVR microprocessors that have internal memory.&lt;br /&gt;
*Statements are highly compatible with Microsoft’s VB/QB.&lt;br /&gt;
*Special commands for&amp;amp;nbsp;'''LCD'''-displays ,&amp;amp;nbsp;'''I2C'''&amp;amp;nbsp;chips and&amp;amp;nbsp;'''1WIRE'''&amp;amp;nbsp;chips, PC keyboad, matrix keyboad,&amp;amp;nbsp;'''RC5'''&amp;amp;nbsp;reception, software UART, SPI , graphical LCD, send IR RC5,'''RC6'''&amp;amp;nbsp;or Sony code.&lt;br /&gt;
*&amp;amp;nbsp;[http://www.mcselec.com/commerce/easy_tcp_ip.htm TCP/IP]&amp;amp;nbsp;with W3100A/W5100/W5200/W5300 chips.&lt;br /&gt;
*Built in AVR-DOS functions like MKDIR, CHDIR, DIR, OPEN, CLOSE, etc. Just as they work in&amp;amp;nbsp; QB/VB !&lt;br /&gt;
*Local variables, user functions, library support.&lt;br /&gt;
*Integrated&amp;amp;nbsp;&amp;lt;u&amp;gt;terminal emulator with download option.&amp;lt;/u&amp;gt;.&lt;br /&gt;
*Integrated&amp;amp;nbsp;&amp;lt;u&amp;gt;simulator&amp;lt;/u&amp;gt;&amp;amp;nbsp;for testing.&lt;br /&gt;
*Integrated ISP programmer (application note AVR910.ASM).&lt;br /&gt;
*Integrated STK200 programmer and STK300 programmer. Also supported is the low cost Sample Electronics programmer. Can be built in 10 minutes! Many other programmers supported via the Universal Interface.&lt;br /&gt;
*Many supported programmer like STK500, STK600, MKII, USBASP, JTAG , Arduino&lt;br /&gt;
*Editor with statement highlighting.&lt;br /&gt;
*Context sensitive help.&lt;br /&gt;
*DEMO version compiles&amp;amp;nbsp;'''4KB'''&amp;amp;nbsp;of binary code. Well suited for the ATmega48.&lt;br /&gt;
*[http://www.mcselec.com/commerce/books.htm English an German Books available]&lt;br /&gt;
*&amp;amp;nbsp;AT mouse simulator, AT keyboard simulator, I2C Slave available as add on.&lt;br /&gt;
*This product is developed in 1995 and is updated regularly.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
===== '''The following statements are supported ('''actually there are many more look in the on line helpfile'''):''' =====&lt;br /&gt;
&lt;br /&gt;
'''Decision and structures'''&amp;lt;br/&amp;gt;IF, THEN, ELSE, ELSEIF, END IF, DO, LOOP, WHILE, WEND, UNTIL, EXIT DO, EXIT WHILE, FOR, NEXT, TO, STEP, EXIT FOR, ON .. GOTO/GOSUB, SELECT, CASE.&lt;br /&gt;
&lt;br /&gt;
'''Input and output'''&amp;lt;br/&amp;gt;PRINT, INPUT, INKEY, PRINT, INPUTHEX, LCD, UPPERLINE, LOWERLINE,DISPLAY ON/OFF, CURSOR ON/OFF/BLINK/NOBLINK, HOME, LOCATE, SHIFTLCD LEFT/RIGHT, SHIFTCURSOR LEFT/RIGHT, CLS, DEFLCDCHAR, WAITKEY, INPUTBIN, PRINTBIN, OPEN, CLOSE, DEBOUNCE, SHIFTIN, SHIFTOUT, GETATKBD, SPC, SERIN, SEROUT&lt;br /&gt;
&lt;br /&gt;
'''Numeric functions'''&amp;lt;br/&amp;gt;AND, OR, XOR, INC, DEC, MOD, NOT, ABS, BCD, LOG, EXP, SQR, SIN,COS,TAN,ATN, ATN2, ASIN, ACOS, FIX, ROUND, MOD, SGN, POWER, RAD2DEG, DEG2RAD, LOG10, TANH, SINH, COSH.&lt;br /&gt;
&lt;br /&gt;
'''I2C'''&amp;lt;br/&amp;gt;I2CSTART, I2CSTOP, I2CWBYTE, I2CRBYTE, I2CSEND and I2CRECEIVE.&lt;br /&gt;
&lt;br /&gt;
'''1WIRE'''&amp;lt;br/&amp;gt;1WWRITE, 1WREAD, 1WRESET, 1WIRECOUNT, 1WSEARCHFIRST, 1WSEARCHNEXT.&lt;br /&gt;
&lt;br /&gt;
'''SPI'''&amp;lt;br/&amp;gt;SPIINIT, SPIIN, SPIOUT, SPIMOVE.&lt;br /&gt;
&lt;br /&gt;
'''CAN'''&amp;lt;br/&amp;gt;CONFIG CANBUSMODE,&amp;amp;nbsp;CONFIG CANMOB,&amp;amp;nbsp;CANBAUD,&amp;amp;nbsp;CANRESET,&amp;amp;nbsp;CANCLEARMOB,&amp;amp;nbsp;CANCLEARALLMOBS,&amp;amp;nbsp;CANSEND,&amp;amp;nbsp;CANRECEIVE&amp;amp;nbsp;,&amp;amp;nbsp;CANID,CANSELPAGE,&amp;amp;nbsp;CANGETINTS&lt;br /&gt;
&lt;br /&gt;
'''TCP/IP'''&amp;lt;br/&amp;gt;TCP/IP routines can be used with the W3100/IIM7000/IIM7010/W5100/W5200/W5300 modules.&lt;br /&gt;
&lt;br /&gt;
BASE64DEC&amp;amp;nbsp;,&amp;amp;nbsp;BASE64ENC&amp;amp;nbsp;,&amp;amp;nbsp;IP2STR&amp;amp;nbsp;,&amp;amp;nbsp;UDPREAD&amp;amp;nbsp;,&amp;amp;nbsp;UDPWRITE&amp;amp;nbsp;,&amp;amp;nbsp;UDPWRITESTR&amp;amp;nbsp;,&amp;amp;nbsp;TCPWRITE&amp;amp;nbsp;,&amp;amp;nbsp;TCPWRITESTR&amp;amp;nbsp;,&amp;amp;nbsp;TCPREAD&amp;amp;nbsp;,GETDSTIP&amp;amp;nbsp;,&amp;amp;nbsp;GETDSTPORT&amp;amp;nbsp;,&amp;amp;nbsp;SOCKETSTAT&amp;amp;nbsp;,&amp;amp;nbsp;SOCKETCONNECT&amp;amp;nbsp;,SOCKETLISTEN&amp;amp;nbsp;,&amp;amp;nbsp;&amp;amp;nbsp;GETSOCKET&amp;amp;nbsp;,&amp;amp;nbsp;SOCKETCLOSE&amp;amp;nbsp;,&amp;amp;nbsp;SETTCP&amp;amp;nbsp;,&amp;amp;nbsp;GETTCPREGS&amp;amp;nbsp;,&amp;amp;nbsp;SETTCPREGS&amp;amp;nbsp;,&amp;amp;nbsp;SETIPPROTOCOL&amp;amp;nbsp;,&amp;amp;nbsp;TCPCHECKSUM&amp;amp;nbsp;,&amp;amp;nbsp;&amp;amp;nbsp;SOCKETDISCONNECT&amp;amp;nbsp;,&amp;amp;nbsp;SNTP&amp;amp;nbsp;,&amp;amp;nbsp;TCPREADHEADER&amp;amp;nbsp;,UDPREADHEADER&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;'''Interrupt programming'''&amp;lt;br/&amp;gt;ON INT0/INT1/TIMER0/TIMER1/SERIAL, RETURN, ENABLE, DISABLE, COUNTERx, CAPTUREx, INTERRUPTS, CONFIG, START, LOAD.&lt;br /&gt;
&lt;br /&gt;
'''Bit manipulation'''&amp;lt;br/&amp;gt;SET, RESET, ROTATE, SHIFT, BITWAIT, TOGGLE.&lt;br /&gt;
&lt;br /&gt;
'''Variables'''&amp;lt;br/&amp;gt;DIM, BIT , BYTE , INTEGER , WORD, LONG, SINGLE, DOUBLE, STRING , DEFBIT, DEFBYTE, DEFINT, DEFWORD.&lt;br /&gt;
&lt;br /&gt;
'''Miscellaneous'''&amp;lt;br/&amp;gt;REM, ' , SWAP, END, STOP, CONST, DELAY, WAIT, WAITMS, GOTO, GOSUB, POWERDOWN, IDLE, DECLARE, CALL, SUB, END SUB, MAKEDEC, MAKEBCD, INP,OUT, ALIAS, DIM , ERASE, DATA, READ, RESTORE, INCR, DECR, PEEK, POKE, CPEEK, FUNCTION, READMAGCARD, BIN2GREY, GREY2BIN, CRC8, CRC16, CRC32, CHECKSUM.&lt;br /&gt;
&lt;br /&gt;
'''Compiler directives'''&amp;lt;br/&amp;gt;$INCLUDE, $BAUD and $CRYSTAL, $SERIALINPUT, $SERIALOUTPUT, $RAMSIZE, $RAMSTART, $DEFAULT XRAM, $ASM-$END ASM, $LCD, $EXTERNAL, $LIB.&lt;br /&gt;
&lt;br /&gt;
'''String manipulation'''&amp;lt;br/&amp;gt;STRING, SPACE, LEFT, RIGHT, MID, VAL, HEXVAL, LEN, STR, HEX, LTRIM, RTRIM, TRIM, LCASE, UCASE, FORMAT, FUSING, INSTR, CHARPOS.&lt;br /&gt;
&lt;br /&gt;
'''And many other functions, statements and directives'''&lt;br /&gt;
&lt;br /&gt;
==== To make a program takes just a few steps : ====&lt;br /&gt;
&lt;br /&gt;
*'''Write the program in BASIC'''&lt;br /&gt;
*'''Compile it to fast machine binary code'''&lt;br /&gt;
*'''Test the result with the integrated simulator(with additional hardware you can simulate the hardware too).'''&lt;br /&gt;
*'''Program the chip with one of the integrated programmers.'''&amp;lt;br/&amp;gt;(hardware must be purchased separately)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a screen shot of the editor. You can work in normal mode or project mode.&lt;br /&gt;
&lt;br /&gt;
At the left you find the Code Explorer. The Code explorer can show unused data in a different colour.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
When the Code Explorer is visible, the editor supports Proper Indent and Indent drawing.&lt;br /&gt;
&lt;br /&gt;
Indent lines can be a great visual help.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
A tool tip with info can be shown by pressing SHIFT :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here it is clear that BDIL is a byte variable, dimensioned in the module CAN-Elektor.bas&lt;br /&gt;
&lt;br /&gt;
It will show info for constants, aliases, variables and functions.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/Light_intensity_and_other_environmental_parameters_With_Xmega_AVR</id>
		<title>Light intensity and other environmental parameters With Xmega AVR</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/Light_intensity_and_other_environmental_parameters_With_Xmega_AVR"/>
				<updated>2014-01-28T10:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is little project, which in the next once proves the superiority an Xmega AVR microcontroller on monitoring and controlling process.&lt;br /&gt;
&lt;br /&gt;
This project was designed to control and monitoring the environmental conditions that includes a set of sensors for measuring Light intensity temperature and humidity. XMEGA16A4 Microcontroller is used in this project.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== '''Microcontroller'''&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
The XMEGA A4 is a family of low power, high performance and peripheral rich CMOS 8/16-bit microcontrollers based on the AVR® enhanced RISC architecture. By executing powerful instructions in a single clock cycle, the XMEGA A4 achieves throughputs approaching 1 Million Instructions Per Second (MIPS) per MHz allowing the system designer to optimize power consumption versus processing speed.&lt;br /&gt;
&lt;br /&gt;
The XMEGA A4 devices provides the following features: In-System Programmable Flash with Read-While-Write capabilities, Internal EEPROM and SRAM, four-channel DMA Controller, eight-channel Event System, Programmable Multi-level Interrupt Controller, 36 general purpose I/O lines, 16-bit Real Time Counter (RTC), five flexible 16-bit Timer/Counters with compare modes and PWM, five USARTs, two Two Wire Serial Interfaces (TWIs), two Serial Peripheral Interfaces (SPIs), AES and DES crypto engine, one Twelve-channel, 12-bit ADC with optional differential input with programmable gain, one Two-channel, 12-bit DAC, two analog comparators with window mode, programmable Watchdog Timer with separate Internal Oscillator, accurate internal oscillators with PLL and prescaler and programmable Brown-Out Detection. The Program and Debug Interface (PDI), a fast 2-pin interface for programming and debugging, is available.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== '''Sensors'''&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
'''Light:'''&lt;br /&gt;
&lt;br /&gt;
The TSL230R, TSL230AR, and TSL230BR programmable light-to-frequency converters combine a configurable silicon photodiode and a current-to-frequency converter on single monolithic CMOS integrated circuits. The output can be either a pulse train or a square wave (50% duty cycle) with frequency directly proportional to light intensity. Device sensitivity is selectable in three ranges, providing two decades of adjustment. The full-scale output frequency can be scaled by one of four preset values. All inputs and the output are TTL compatible, allowing direct two-way communication with a microcontroller for programming and output interface. An output enable (OE) is provided that places the output in the high-impedance state for multiple-unit sharing of a microcontroller input line. The devices are available with absolute-output-frequency tolerances of 5% (TSL230BR), 10% (TSL230AR), or 20% (TSL230R). They have been temperature compensated for the ultraviolet-to-visible light range of 320 nm to 700 nm and respond over the light range of 320 nm to 1050 nm. The devices are characterized over the temperature range of –25°C to 70°C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:An env 02.jpg|center|An env 02.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Humidity:'''&lt;br /&gt;
&lt;br /&gt;
The HIH-4000 Series Humidity Sensors are designed specifically for high volume OEM (Original Equipment Manufacturer) users. Direct input to a controller or other device is made possible by this sensor’s linear voltage output. With a typical current draw of only 200 µA, the HIH-4000 Series is often ideally suited for low drain, battery operated systems. the RH sensor is a laser trimmed, thermoset polymer capacitive sensing element with on-chip integrated signal conditioning. The sensing element's multilayer construction provides excellent resistance to most application hazards such as wetting, dust, dirt, oils and common environmental chemicals.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Data PrintOut&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:An env 01.jpg|center|An env 01.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Temperature:'''&lt;br /&gt;
&lt;br /&gt;
The LM35 series are precision integrated-circuit temperature sensors, whose output voltage is linearly proportional to the Celsius (Centigrade) temperature. The LM35 thus has an advantage over linear temperature sensors calibrated in ° Kelvin, as the user is not required to subtract a large constant voltage from its output to obtain convenient Centigrade scaling. The LM35 does not require any external calibration or trimming to provide typical accuracies of ±1⁄4°C at room temperature and ±3⁄4°C over a full −55 to +150°C temperature range.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== '''Features'''&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
*Calibrated directly in ° Celsius (Centigrade)&lt;br /&gt;
*Linear + 10.0 mV/°C scale factor&lt;br /&gt;
*0.5°C accuracy guaranteeable (at +25°C)&lt;br /&gt;
*Rated for full −55° to +150°C range&lt;br /&gt;
*Suitable for remote applications&lt;br /&gt;
*Low cost due to wafer-level trimming&lt;br /&gt;
*Operates from 4 to 30 volts&lt;br /&gt;
*Less than 60 μA current drain&lt;br /&gt;
*Low self-heating, 0.08°C in still air&lt;br /&gt;
*Nonlinearity only ±1⁄4°C typical&lt;br /&gt;
*Low impedance output, 0.1 W for 1 mA load&lt;br /&gt;
&lt;br /&gt;
== Schematic&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
[[File:An env 03.jpg|center|An env 03.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Source code&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
$regfile = &amp;quot;xm16a4def.dat&amp;quot;&lt;br /&gt;
$crystal = 32000000 '32MHz&lt;br /&gt;
$hwstack = 64&lt;br /&gt;
$swstack = 40&lt;br /&gt;
$framesize = 40&lt;br /&gt;
&lt;br /&gt;
'include the following lib and code, the routines will be replaced since they are a workaround&lt;br /&gt;
$lib &amp;quot;xmega.lib&amp;quot; : $external _xmegafix_clear : $external _xmegafix_rol_r1014&lt;br /&gt;
&lt;br /&gt;
'First enable the osc of your choice&lt;br /&gt;
Config Osc = Enabled , Pllosc = Disabled , Extosc = Disabled , 32khzosc = Disabled , 32mhzosc = Enabled '32MHz&lt;br /&gt;
Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1 '32MHz&lt;br /&gt;
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&lt;br /&gt;
&lt;br /&gt;
' ADC Configuration&lt;br /&gt;
Config Adca = Single , Convmode = Signed , Resolution = 12bit , Dma = Off , Reference = Intvcc , _&lt;br /&gt;
Event_mode = None , Prescaler = 256 , _&lt;br /&gt;
Ch1_gain = 1 , Ch1_inp = Diffwgain , Mux1 = &amp;amp;B00001001 , _&lt;br /&gt;
Ch2_gain = 1 , Ch2_inp = Single_ended , Mux2 = &amp;amp;B00010000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&lt;br /&gt;
' Serial interface configuration&lt;br /&gt;
Config Com3 = 20000 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8&lt;br /&gt;
'Config Serialin2 = Buffered , Size = 20 , Bytematch = 66&lt;br /&gt;
Open &amp;quot;COM3:&amp;quot; For Binary As #3&lt;br /&gt;
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&lt;br /&gt;
&lt;br /&gt;
'Config Interrupts and timer&lt;br /&gt;
Config Priority = Static , Vector = Application , Lo = Enabled , Med = Enabled 'Enable Lo Level Interrupts&lt;br /&gt;
&lt;br /&gt;
Config Porte.1 = Input&lt;br /&gt;
Config Xpin = Porte.1 , Outpull = Pullup , Sense = Falling 'enable Pullup and reaction on falling edge&lt;br /&gt;
&lt;br /&gt;
Config Event_system = Dummy , Mux0 = Porte.1 , Digflt0 = 8 'Eventchannel 0 = PINE.1, enable digital filtering&lt;br /&gt;
Config Tce0 = Normal , Prescale = E0 , Event_source = E0 , Event_action = Freq ' Normal = no waveform generation, Event Source = Event Channel 0&lt;br /&gt;
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'Enable Receive Interrupt For Com3&lt;br /&gt;
On Usartd0_rxc Sending&lt;br /&gt;
Enable Usartd0_rxc , Lo&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
' Port Configuration&lt;br /&gt;
Ddre.0 = 1 : Porte.0 = 0&lt;br /&gt;
Ddrd.7 = 1 : Portd.7 = 1&lt;br /&gt;
Ddrd.6 = 1 : Portd.6 = 0&lt;br /&gt;
Ddrd.5 = 1 : Portd.5 = 0&lt;br /&gt;
Ddrd.4 = 1 : Portd.4 = 1&lt;br /&gt;
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&lt;br /&gt;
&lt;br /&gt;
'Variables defination&lt;br /&gt;
Dim A(2) As Word , Adc_step(2) As Single , Temp As Single , Hum As Single&lt;br /&gt;
Dim Freq As Word , C(3) As String * 5 , Datasend As String * 16 , Sum(2) As Long&lt;br /&gt;
Dim N As Byte , D(2) As Single , Sent As Bit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Adc_step(1) = 0.0315&lt;br /&gt;
Adc_step(2) = 0.0976&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
 Portd.4 = 0&lt;br /&gt;
 Waitms 100&lt;br /&gt;
 Freq = Tce0_cnt&lt;br /&gt;
 Tce0_cnt = 0&lt;br /&gt;
 Sum(1) = 0&lt;br /&gt;
 Sum(2) = 0&lt;br /&gt;
For N = 1 To 2&lt;br /&gt;
 A(1) = Getadc(adca , 1 , &amp;amp;B00001001) 'ADC A, Channel 0 , MUX = &amp;amp;B00000000 --&amp;gt; PINA.0&lt;br /&gt;
 A(2) = Getadc(adca , 2 , &amp;amp;B00010000) 'ADC A, Channel 0 , MUX = &amp;amp;B00000000 --&amp;gt; PINA.0&lt;br /&gt;
&lt;br /&gt;
 Sum(1) = Sum(1) + A(1)&lt;br /&gt;
 Sum(2) = Sum(2) + A(2)&lt;br /&gt;
Next N&lt;br /&gt;
&lt;br /&gt;
 D(1) = Sum(1) / 2.0&lt;br /&gt;
 D(2) = Sum(2) / 2.0&lt;br /&gt;
 Hum = D(1) * Adc_step(1)&lt;br /&gt;
 Hum = Hum + 21&lt;br /&gt;
 Temp = D(2) * Adc_step(2)&lt;br /&gt;
 Temp = Temp + 3&lt;br /&gt;
&lt;br /&gt;
Loop&lt;br /&gt;
Close #3&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sending:&lt;br /&gt;
Print #3 , Datasend&lt;br /&gt;
Return 'end program&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Author&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
'''''Written by''''': Mohammad Jafar Dalvand, University of Tehran, Iran&amp;lt;br/&amp;gt;'''''Email Address:''''' [mailto:Dalvand@ut.ac.ir Dalvand@ut.ac.ir]&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/Light_intensity_and_other_environmental_parameters_With_Xmega_AVR</id>
		<title>Light intensity and other environmental parameters With Xmega AVR</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/Light_intensity_and_other_environmental_parameters_With_Xmega_AVR"/>
				<updated>2014-01-28T10:31:22Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is little project, which in the next once proves the superiority an Xmega AVR microcontroller on monitoring and controlling process.&lt;br /&gt;
&lt;br /&gt;
This project was designed to control and monitoring the environmental conditions that includes a set of sensors for measuring Light intensity temperature and humidity. XMEGA16A4 Microcontroller is used in this project.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== '''Microcontroller'''&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
The XMEGA A4 is a family of low power, high performance and peripheral rich CMOS 8/16-bit microcontrollers based on the AVR® enhanced RISC architecture. By executing powerful instructions in a single clock cycle, the XMEGA A4 achieves throughputs approaching 1 Million Instructions Per Second (MIPS) per MHz allowing the system designer to optimize power consumption versus processing speed.&lt;br /&gt;
&lt;br /&gt;
The XMEGA A4 devices provides the following features: In-System Programmable Flash with Read-While-Write capabilities, Internal EEPROM and SRAM, four-channel DMA Controller, eight-channel Event System, Programmable Multi-level Interrupt Controller, 36 general purpose I/O lines, 16-bit Real Time Counter (RTC), five flexible 16-bit Timer/Counters with compare modes and PWM, five USARTs, two Two Wire Serial Interfaces (TWIs), two Serial Peripheral Interfaces (SPIs), AES and DES crypto engine, one Twelve-channel, 12-bit ADC with optional differential input with programmable gain, one Two-channel, 12-bit DAC, two analog comparators with window mode, programmable Watchdog Timer with separate Internal Oscillator, accurate internal oscillators with PLL and prescaler and programmable Brown-Out Detection. The Program and Debug Interface (PDI), a fast 2-pin interface for programming and debugging, is available.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== '''Sensors'''&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
'''Light:'''&lt;br /&gt;
&lt;br /&gt;
The TSL230R, TSL230AR, and TSL230BR programmable light-to-frequency converters combine a configurable silicon photodiode and a current-to-frequency converter on single monolithic CMOS integrated circuits. The output can be either a pulse train or a square wave (50% duty cycle) with frequency directly proportional to light intensity. Device sensitivity is selectable in three ranges, providing two decades of adjustment. The full-scale output frequency can be scaled by one of four preset values. All inputs and the output are TTL compatible, allowing direct two-way communication with a microcontroller for programming and output interface. An output enable (OE) is provided that places the output in the high-impedance state for multiple-unit sharing of a microcontroller input line. The devices are available with absolute-output-frequency tolerances of 5% (TSL230BR), 10% (TSL230AR), or 20% (TSL230R). They have been temperature compensated for the ultraviolet-to-visible light range of 320 nm to 700 nm and respond over the light range of 320 nm to 1050 nm. The devices are characterized over the temperature range of –25°C to 70°C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:An env 02.jpg|center|An env 02.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Humidity:'''&lt;br /&gt;
&lt;br /&gt;
The HIH-4000 Series Humidity Sensors are designed specifically for high volume OEM (Original Equipment Manufacturer) users. Direct input to a controller or other device is made possible by this sensor’s linear voltage output. With a typical current draw of only 200 µA, the HIH-4000 Series is often ideally suited for low drain, battery operated systems. the RH sensor is a laser trimmed, thermoset polymer capacitive sensing element with on-chip integrated signal conditioning. The sensing element's multilayer construction provides excellent resistance to most application hazards such as wetting, dust, dirt, oils and common environmental chemicals.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Data PrintOut&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:An env 01.jpg|center|An env 01.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Temperature:'''&lt;br /&gt;
&lt;br /&gt;
The LM35 series are precision integrated-circuit temperature sensors, whose output voltage is linearly proportional to the Celsius (Centigrade) temperature. The LM35 thus has an advantage over linear temperature sensors calibrated in ° Kelvin, as the user is not required to subtract a large constant voltage from its output to obtain convenient Centigrade scaling. The LM35 does not require any external calibration or trimming to provide typical accuracies of ±1⁄4°C at room temperature and ±3⁄4°C over a full −55 to +150°C temperature range.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== '''Features'''&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
*Calibrated directly in ° Celsius (Centigrade)&lt;br /&gt;
*Linear + 10.0 mV/°C scale factor&lt;br /&gt;
*0.5°C accuracy guaranteeable (at +25°C)&lt;br /&gt;
*Rated for full −55° to +150°C range&lt;br /&gt;
*Suitable for remote applications&lt;br /&gt;
*Low cost due to wafer-level trimming&lt;br /&gt;
*Operates from 4 to 30 volts&lt;br /&gt;
*Less than 60 μA current drain&lt;br /&gt;
*Low self-heating, 0.08°C in still air&lt;br /&gt;
*Nonlinearity only ±1⁄4°C typical&lt;br /&gt;
*Low impedance output, 0.1 W for 1 mA load&lt;br /&gt;
&lt;br /&gt;
== Schematic&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
[[File:An env 03.jpg|center|An env 03.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Source code&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
$regfile = &amp;quot;xm16a4def.dat&amp;quot;&lt;br /&gt;
$crystal = 32000000 '32MHz&lt;br /&gt;
$hwstack = 64&lt;br /&gt;
$swstack = 40&lt;br /&gt;
$framesize = 40&lt;br /&gt;
&lt;br /&gt;
'include the following lib and code, the routines will be replaced since they are a workaround&lt;br /&gt;
$lib &amp;quot;xmega.lib&amp;quot; : $external _xmegafix_clear : $external _xmegafix_rol_r1014&lt;br /&gt;
&lt;br /&gt;
'First enable the osc of your choice&lt;br /&gt;
Config Osc = Enabled , Pllosc = Disabled , Extosc = Disabled , 32khzosc = Disabled , 32mhzosc = Enabled '32MHz&lt;br /&gt;
Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1 '32MHz&lt;br /&gt;
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&lt;br /&gt;
&lt;br /&gt;
' ADC Configuration&lt;br /&gt;
Config Adca = Single , Convmode = Signed , Resolution = 12bit , Dma = Off , Reference = Intvcc , _&lt;br /&gt;
Event_mode = None , Prescaler = 256 , _&lt;br /&gt;
Ch1_gain = 1 , Ch1_inp = Diffwgain , Mux1 = &amp;amp;B00001001 , _&lt;br /&gt;
Ch2_gain = 1 , Ch2_inp = Single_ended , Mux2 = &amp;amp;B00010000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&lt;br /&gt;
' Serial interface configuration&lt;br /&gt;
Config Com3 = 20000 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8&lt;br /&gt;
'Config Serialin2 = Buffered , Size = 20 , Bytematch = 66&lt;br /&gt;
Open &amp;quot;COM3:&amp;quot; For Binary As #3&lt;br /&gt;
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&lt;br /&gt;
&lt;br /&gt;
'Config Interrupts and timer&lt;br /&gt;
Config Priority = Static , Vector = Application , Lo = Enabled , Med = Enabled 'Enable Lo Level Interrupts&lt;br /&gt;
&lt;br /&gt;
Config Porte.1 = Input&lt;br /&gt;
Config Xpin = Porte.1 , Outpull = Pullup , Sense = Falling 'enable Pullup and reaction on falling edge&lt;br /&gt;
&lt;br /&gt;
Config Event_system = Dummy , Mux0 = Porte.1 , Digflt0 = 8 'Eventchannel 0 = PINE.1, enable digital filtering&lt;br /&gt;
Config Tce0 = Normal , Prescale = E0 , Event_source = E0 , Event_action = Freq ' Normal = no waveform generation, Event Source = Event Channel 0&lt;br /&gt;
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'Enable Receive Interrupt For Com3&lt;br /&gt;
On Usartd0_rxc Sending&lt;br /&gt;
Enable Usartd0_rxc , Lo&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
' Port Configuration&lt;br /&gt;
Ddre.0 = 1 : Porte.0 = 0&lt;br /&gt;
Ddrd.7 = 1 : Portd.7 = 1&lt;br /&gt;
Ddrd.6 = 1 : Portd.6 = 0&lt;br /&gt;
Ddrd.5 = 1 : Portd.5 = 0&lt;br /&gt;
Ddrd.4 = 1 : Portd.4 = 1&lt;br /&gt;
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&lt;br /&gt;
&lt;br /&gt;
'Variables defination&lt;br /&gt;
Dim A(2) As Word , Adc_step(2) As Single , Temp As Single , Hum As Single&lt;br /&gt;
Dim Freq As Word , C(3) As String * 5 , Datasend As String * 16 , Sum(2) As Long&lt;br /&gt;
Dim N As Byte , D(2) As Single , Sent As Bit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Adc_step(1) = 0.0315&lt;br /&gt;
Adc_step(2) = 0.0976&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
 Portd.4 = 0&lt;br /&gt;
 Waitms 100&lt;br /&gt;
 Freq = Tce0_cnt&lt;br /&gt;
 Tce0_cnt = 0&lt;br /&gt;
 Sum(1) = 0&lt;br /&gt;
 Sum(2) = 0&lt;br /&gt;
For N = 1 To 2&lt;br /&gt;
 A(1) = Getadc(adca , 1 , &amp;amp;B00001001) 'ADC A, Channel 0 , MUX = &amp;amp;B00000000 --&amp;gt; PINA.0&lt;br /&gt;
 A(2) = Getadc(adca , 2 , &amp;amp;B00010000) 'ADC A, Channel 0 , MUX = &amp;amp;B00000000 --&amp;gt; PINA.0&lt;br /&gt;
&lt;br /&gt;
 Sum(1) = Sum(1) + A(1)&lt;br /&gt;
 Sum(2) = Sum(2) + A(2)&lt;br /&gt;
Next N&lt;br /&gt;
&lt;br /&gt;
 D(1) = Sum(1) / 2.0&lt;br /&gt;
 D(2) = Sum(2) / 2.0&lt;br /&gt;
 Hum = D(1) * Adc_step(1)&lt;br /&gt;
 Hum = Hum + 21&lt;br /&gt;
 Temp = D(2) * Adc_step(2)&lt;br /&gt;
 Temp = Temp + 3&lt;br /&gt;
&lt;br /&gt;
Loop&lt;br /&gt;
Close #3&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sending:&lt;br /&gt;
Print #3 , Datasend&lt;br /&gt;
Return 'end program&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Author&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
'''''Written by''''': Mohammad Jafar Dalvand, University of Tehran, Iran&amp;lt;br/&amp;gt;'''''Email Address:''''' [mailto:Dalvand@ut.ac.ir Dalvand@ut.ac.ir]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/Light_intensity_and_other_environmental_parameters_With_Xmega_AVR</id>
		<title>Light intensity and other environmental parameters With Xmega AVR</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/Light_intensity_and_other_environmental_parameters_With_Xmega_AVR"/>
				<updated>2014-01-28T10:29:45Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is little project, which in the next once proves the superiority an Xmega AVR microcontroller on monitoring and controlling process.&lt;br /&gt;
&lt;br /&gt;
This project was designed to control and monitoring the environmental conditions that includes a set of sensors for measuring Light intensity temperature and humidity. XMEGA16A4 Microcontroller is used in this project.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== '''Microcontroller'''&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
The XMEGA A4 is a family of low power, high performance and peripheral rich CMOS 8/16-bit microcontrollers based on the AVR® enhanced RISC architecture. By executing powerful instructions in a single clock cycle, the XMEGA A4 achieves throughputs approaching 1 Million Instructions Per Second (MIPS) per MHz allowing the system designer to optimize power consumption versus processing speed.&lt;br /&gt;
&lt;br /&gt;
The XMEGA A4 devices provides the following features: In-System Programmable Flash with Read-While-Write capabilities, Internal EEPROM and SRAM, four-channel DMA Controller, eight-channel Event System, Programmable Multi-level Interrupt Controller, 36 general purpose I/O lines, 16-bit Real Time Counter (RTC), five flexible 16-bit Timer/Counters with compare modes and PWM, five USARTs, two Two Wire Serial Interfaces (TWIs), two Serial Peripheral Interfaces (SPIs), AES and DES crypto engine, one Twelve-channel, 12-bit ADC with optional differential input with programmable gain, one Two-channel, 12-bit DAC, two analog comparators with window mode, programmable Watchdog Timer with separate Internal Oscillator, accurate internal oscillators with PLL and prescaler and programmable Brown-Out Detection. The Program and Debug Interface (PDI), a fast 2-pin interface for programming and debugging, is available.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== '''Sensors'''&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
'''Light:'''&lt;br /&gt;
&lt;br /&gt;
The TSL230R, TSL230AR, and TSL230BR programmable light-to-frequency converters combine a configurable silicon photodiode and a current-to-frequency converter on single monolithic CMOS integrated circuits. The output can be either a pulse train or a square wave (50% duty cycle) with frequency directly proportional to light intensity. Device sensitivity is selectable in three ranges, providing two decades of adjustment. The full-scale output frequency can be scaled by one of four preset values. All inputs and the output are TTL compatible, allowing direct two-way communication with a microcontroller for programming and output interface. An output enable (OE) is provided that places the output in the high-impedance state for multiple-unit sharing of a microcontroller input line. The devices are available with absolute-output-frequency tolerances of 5% (TSL230BR), 10% (TSL230AR), or 20% (TSL230R). They have been temperature compensated for the ultraviolet-to-visible light range of 320 nm to 700 nm and respond over the light range of 320 nm to 1050 nm. The devices are characterized over the temperature range of –25°C to 70°C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:An env 02.jpg|center|An env 02.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Humidity:'''&lt;br /&gt;
&lt;br /&gt;
The HIH-4000 Series Humidity Sensors are designed specifically for high volume OEM (Original Equipment Manufacturer) users. Direct input to a controller or other device is made possible by this sensor’s linear voltage output. With a typical current draw of only 200 µA, the HIH-4000 Series is often ideally suited for low drain, battery operated systems. the RH sensor is a laser trimmed, thermoset polymer capacitive sensing element with on-chip integrated signal conditioning. The sensing element's multilayer construction provides excellent resistance to most application hazards such as wetting, dust, dirt, oils and common environmental chemicals.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Data PrintOut&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:An env 01.jpg|center|An env 01.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Temperature:'''&lt;br /&gt;
&lt;br /&gt;
The LM35 series are precision integrated-circuit temperature sensors, whose output voltage is linearly proportional to the Celsius (Centigrade) temperature. The LM35 thus has an advantage over linear temperature sensors calibrated in ° Kelvin, as the user is not required to subtract a large constant voltage from its output to obtain convenient Centigrade scaling. The LM35 does not require any external calibration or trimming to provide typical accuracies of ±1⁄4°C at room temperature and ±3⁄4°C over a full −55 to +150°C temperature range.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== '''Features'''&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
*Calibrated directly in ° Celsius (Centigrade)&lt;br /&gt;
*Linear + 10.0 mV/°C scale factor&lt;br /&gt;
*0.5°C accuracy guaranteeable (at +25°C)&lt;br /&gt;
*Rated for full −55° to +150°C range&lt;br /&gt;
*Suitable for remote applications&lt;br /&gt;
*Low cost due to wafer-level trimming&lt;br /&gt;
*Operates from 4 to 30 volts&lt;br /&gt;
*Less than 60 μA current drain&lt;br /&gt;
*Low self-heating, 0.08°C in still air&lt;br /&gt;
*Nonlinearity only ±1⁄4°C typical&lt;br /&gt;
*Low impedance output, 0.1 W for 1 mA load&lt;br /&gt;
&lt;br /&gt;
=== Schematic&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
[[File:An env 03.jpg|center|An env 03.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Source code&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
$regfile = &amp;quot;xm16a4def.dat&amp;quot;&lt;br /&gt;
$crystal = 32000000 '32MHz&lt;br /&gt;
$hwstack = 64&lt;br /&gt;
$swstack = 40&lt;br /&gt;
$framesize = 40&lt;br /&gt;
&lt;br /&gt;
'include the following lib and code, the routines will be replaced since they are a workaround&lt;br /&gt;
$lib &amp;quot;xmega.lib&amp;quot; : $external _xmegafix_clear : $external _xmegafix_rol_r1014&lt;br /&gt;
&lt;br /&gt;
'First enable the osc of your choice&lt;br /&gt;
Config Osc = Enabled , Pllosc = Disabled , Extosc = Disabled , 32khzosc = Disabled , 32mhzosc = Enabled '32MHz&lt;br /&gt;
Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1 '32MHz&lt;br /&gt;
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&lt;br /&gt;
&lt;br /&gt;
' ADC Configuration&lt;br /&gt;
Config Adca = Single , Convmode = Signed , Resolution = 12bit , Dma = Off , Reference = Intvcc , _&lt;br /&gt;
Event_mode = None , Prescaler = 256 , _&lt;br /&gt;
Ch1_gain = 1 , Ch1_inp = Diffwgain , Mux1 = &amp;amp;B00001001 , _&lt;br /&gt;
Ch2_gain = 1 , Ch2_inp = Single_ended , Mux2 = &amp;amp;B00010000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&lt;br /&gt;
' Serial interface configuration&lt;br /&gt;
Config Com3 = 20000 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8&lt;br /&gt;
'Config Serialin2 = Buffered , Size = 20 , Bytematch = 66&lt;br /&gt;
Open &amp;quot;COM3:&amp;quot; For Binary As #3&lt;br /&gt;
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&lt;br /&gt;
&lt;br /&gt;
'Config Interrupts and timer&lt;br /&gt;
Config Priority = Static , Vector = Application , Lo = Enabled , Med = Enabled 'Enable Lo Level Interrupts&lt;br /&gt;
&lt;br /&gt;
Config Porte.1 = Input&lt;br /&gt;
Config Xpin = Porte.1 , Outpull = Pullup , Sense = Falling 'enable Pullup and reaction on falling edge&lt;br /&gt;
&lt;br /&gt;
Config Event_system = Dummy , Mux0 = Porte.1 , Digflt0 = 8 'Eventchannel 0 = PINE.1, enable digital filtering&lt;br /&gt;
Config Tce0 = Normal , Prescale = E0 , Event_source = E0 , Event_action = Freq ' Normal = no waveform generation, Event Source = Event Channel 0&lt;br /&gt;
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'Enable Receive Interrupt For Com3&lt;br /&gt;
On Usartd0_rxc Sending&lt;br /&gt;
Enable Usartd0_rxc , Lo&lt;br /&gt;
Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
' Port Configuration&lt;br /&gt;
Ddre.0 = 1 : Porte.0 = 0&lt;br /&gt;
Ddrd.7 = 1 : Portd.7 = 1&lt;br /&gt;
Ddrd.6 = 1 : Portd.6 = 0&lt;br /&gt;
Ddrd.5 = 1 : Portd.5 = 0&lt;br /&gt;
Ddrd.4 = 1 : Portd.4 = 1&lt;br /&gt;
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&lt;br /&gt;
&lt;br /&gt;
'Variables defination&lt;br /&gt;
Dim A(2) As Word , Adc_step(2) As Single , Temp As Single , Hum As Single&lt;br /&gt;
Dim Freq As Word , C(3) As String * 5 , Datasend As String * 16 , Sum(2) As Long&lt;br /&gt;
Dim N As Byte , D(2) As Single , Sent As Bit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Adc_step(1) = 0.0315&lt;br /&gt;
Adc_step(2) = 0.0976&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
 Portd.4 = 0&lt;br /&gt;
 Waitms 100&lt;br /&gt;
 Freq = Tce0_cnt&lt;br /&gt;
 Tce0_cnt = 0&lt;br /&gt;
 Sum(1) = 0&lt;br /&gt;
 Sum(2) = 0&lt;br /&gt;
For N = 1 To 2&lt;br /&gt;
 A(1) = Getadc(adca , 1 , &amp;amp;B00001001) 'ADC A, Channel 0 , MUX = &amp;amp;B00000000 --&amp;gt; PINA.0&lt;br /&gt;
 A(2) = Getadc(adca , 2 , &amp;amp;B00010000) 'ADC A, Channel 0 , MUX = &amp;amp;B00000000 --&amp;gt; PINA.0&lt;br /&gt;
&lt;br /&gt;
 Sum(1) = Sum(1) + A(1)&lt;br /&gt;
 Sum(2) = Sum(2) + A(2)&lt;br /&gt;
Next N&lt;br /&gt;
&lt;br /&gt;
 D(1) = Sum(1) / 2.0&lt;br /&gt;
 D(2) = Sum(2) / 2.0&lt;br /&gt;
 Hum = D(1) * Adc_step(1)&lt;br /&gt;
 Hum = Hum + 21&lt;br /&gt;
 Temp = D(2) * Adc_step(2)&lt;br /&gt;
 Temp = Temp + 3&lt;br /&gt;
&lt;br /&gt;
Loop&lt;br /&gt;
Close #3&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sending:&lt;br /&gt;
Print #3 , Datasend&lt;br /&gt;
Return 'end program&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Author&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
'''''Written by''''': Mohammad Jafar Dalvand, University of Tehran, Iran&amp;lt;br/&amp;gt;'''''Email Address:''''' [mailto:Dalvand@ut.ac.ir Dalvand@ut.ac.ir]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/File:An_env_03.jpg</id>
		<title>File:An env 03.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/File:An_env_03.jpg"/>
				<updated>2014-01-28T10:23:19Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/Light_intensity_and_other_environmental_parameters_With_Xmega_AVR</id>
		<title>Light intensity and other environmental parameters With Xmega AVR</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/Light_intensity_and_other_environmental_parameters_With_Xmega_AVR"/>
				<updated>2014-01-28T10:21:40Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is little project, which in the next once proves the superiority an Xmega AVR microcontroller on monitoring and controlling process.&lt;br /&gt;
&lt;br /&gt;
This project was designed to control and monitoring the environmental conditions that includes a set of sensors for measuring Light intensity temperature and humidity. XMEGA16A4 Microcontroller is used in this project.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== '''Microcontroller'''&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
The XMEGA A4 is a family of low power, high performance and peripheral rich CMOS 8/16-bit microcontrollers based on the AVR® enhanced RISC architecture. By executing powerful instructions in a single clock cycle, the XMEGA A4 achieves throughputs approaching 1 Million Instructions Per Second (MIPS) per MHz allowing the system designer to optimize power consumption versus processing speed.&lt;br /&gt;
&lt;br /&gt;
The XMEGA A4 devices provides the following features: In-System Programmable Flash with Read-While-Write capabilities, Internal EEPROM and SRAM, four-channel DMA Controller, eight-channel Event System, Programmable Multi-level Interrupt Controller, 36 general purpose I/O lines, 16-bit Real Time Counter (RTC), five flexible 16-bit Timer/Counters with compare modes and PWM, five USARTs, two Two Wire Serial Interfaces (TWIs), two Serial Peripheral Interfaces (SPIs), AES and DES crypto engine, one Twelve-channel, 12-bit ADC with optional differential input with programmable gain, one Two-channel, 12-bit DAC, two analog comparators with window mode, programmable Watchdog Timer with separate Internal Oscillator, accurate internal oscillators with PLL and prescaler and programmable Brown-Out Detection. The Program and Debug Interface (PDI), a fast 2-pin interface for programming and debugging, is available.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== '''Sensors'''&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
'''Light:'''&lt;br /&gt;
&lt;br /&gt;
The TSL230R, TSL230AR, and TSL230BR programmable light-to-frequency converters combine a configurable silicon photodiode and a current-to-frequency converter on single monolithic CMOS integrated circuits. The output can be either a pulse train or a square wave (50% duty cycle) with frequency directly proportional to light intensity. Device sensitivity is selectable in three ranges, providing two decades of adjustment. The full-scale output frequency can be scaled by one of four preset values. All inputs and the output are TTL compatible, allowing direct two-way communication with a microcontroller for programming and output interface. An output enable (OE) is provided that places the output in the high-impedance state for multiple-unit sharing of a microcontroller input line. The devices are available with absolute-output-frequency tolerances of 5% (TSL230BR), 10% (TSL230AR), or 20% (TSL230R). They have been temperature compensated for the ultraviolet-to-visible light range of 320 nm to 700 nm and respond over the light range of 320 nm to 1050 nm. The devices are characterized over the temperature range of –25°C to 70°C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:An env 02.jpg|center|An env 02.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Humidity:'''&lt;br /&gt;
&lt;br /&gt;
The HIH-4000 Series Humidity Sensors are designed specifically for high volume OEM (Original Equipment Manufacturer) users. Direct input to a controller or other device is made possible by this sensor’s linear voltage output. With a typical current draw of only 200 µA, the HIH-4000 Series is often ideally suited for low drain, battery operated systems. the RH sensor is a laser trimmed, thermoset polymer capacitive sensing element with on-chip integrated signal conditioning. The sensing element's multilayer construction provides excellent resistance to most application hazards such as wetting, dust, dirt, oils and common environmental chemicals.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Data PrintOut&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:An env 01.jpg|center|An env 01.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Temperature:'''&lt;br /&gt;
&lt;br /&gt;
The LM35 series are precision integrated-circuit temperature sensors, whose output voltage is linearly proportional to the Celsius (Centigrade) temperature. The LM35 thus has an advantage over linear temperature sensors calibrated in ° Kelvin, as the user is not required to subtract a large constant voltage from its output to obtain convenient Centigrade scaling. The LM35 does not require any external calibration or trimming to provide typical accuracies of ±1⁄4°C at room temperature and ±3⁄4°C over a full −55 to +150°C temperature range.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== '''Features'''&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
*Calibrated directly in ° Celsius (Centigrade)&lt;br /&gt;
*Linear + 10.0 mV/°C scale factor&lt;br /&gt;
*0.5°C accuracy guaranteeable (at +25°C)&lt;br /&gt;
*Rated for full −55° to +150°C range&lt;br /&gt;
*Suitable for remote applications&lt;br /&gt;
*Low cost due to wafer-level trimming&lt;br /&gt;
*Operates from 4 to 30 volts&lt;br /&gt;
*Less than 60 μA current drain&lt;br /&gt;
*Low self-heating, 0.08°C in still air&lt;br /&gt;
*Nonlinearity only ±1⁄4°C typical&lt;br /&gt;
*Low impedance output, 0.1 W for 1 mA load&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/File:An_env_02.jpg</id>
		<title>File:An env 02.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/File:An_env_02.jpg"/>
				<updated>2014-01-28T10:20:17Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/File:An_env_01.jpg</id>
		<title>File:An env 01.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/File:An_env_01.jpg"/>
				<updated>2014-01-28T10:19:59Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/Light_intensity_and_other_environmental_parameters_With_Xmega_AVR</id>
		<title>Light intensity and other environmental parameters With Xmega AVR</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/Light_intensity_and_other_environmental_parameters_With_Xmega_AVR"/>
				<updated>2014-01-28T10:16:02Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;Here is little project, which in the next once proves the superiority an Xmega AVR microcontroller on monitoring and controlling process.  This project was designed to control...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is little project, which in the next once proves the superiority an Xmega AVR microcontroller on monitoring and controlling process.&lt;br /&gt;
&lt;br /&gt;
This project was designed to control and monitoring the environmental conditions that includes a set of sensors for measuring Light intensity temperature and humidity. XMEGA16A4 Microcontroller is used in this project.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== '''Microcontroller'''&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
The XMEGA A4 is a family of low power, high performance and peripheral rich CMOS 8/16-bit microcontrollers based on the AVR® enhanced RISC architecture. By executing powerful instructions in a single clock cycle, the XMEGA A4 achieves throughputs approaching 1 Million Instructions Per Second (MIPS) per MHz allowing the system designer to optimize power consumption versus processing speed.&lt;br /&gt;
&lt;br /&gt;
The XMEGA A4 devices provides the following features: In-System Programmable Flash with Read-While-Write capabilities, Internal EEPROM and SRAM, four-channel DMA Controller, eight-channel Event System, Programmable Multi-level Interrupt Controller, 36 general purpose I/O lines, 16-bit Real Time Counter (RTC), five flexible 16-bit Timer/Counters with compare modes and PWM, five USARTs, two Two Wire Serial Interfaces (TWIs), two Serial Peripheral Interfaces (SPIs), AES and DES crypto engine, one Twelve-channel, 12-bit ADC with optional differential input with programmable gain, one Two-channel, 12-bit DAC, two analog comparators with window mode, programmable Watchdog Timer with separate Internal Oscillator, accurate internal oscillators with PLL and prescaler and programmable Brown-Out Detection. The Program and Debug Interface (PDI), a fast 2-pin interface for programming and debugging, is available.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== '''Sensors'''&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
'''Light:'''&lt;br /&gt;
&lt;br /&gt;
The TSL230R, TSL230AR, and TSL230BR programmable light-to-frequency converters combine a configurable silicon photodiode and a current-to-frequency converter on single monolithic CMOS integrated circuits. The output can be either a pulse train or a square wave (50% duty cycle) with frequency directly proportional to light intensity. Device sensitivity is selectable in three ranges, providing two decades of adjustment. The full-scale output frequency can be scaled by one of four preset values. All inputs and the output are TTL compatible, allowing direct two-way communication with a microcontroller for programming and output interface. An output enable (OE) is provided that places the output in the high-impedance state for multiple-unit sharing of a microcontroller input line. The devices are available with absolute-output-frequency tolerances of 5% (TSL230BR), 10% (TSL230AR), or 20% (TSL230R). They have been temperature compensated for the ultraviolet-to-visible light range of 320 nm to 700 nm and respond over the light range of 320 nm to 1050 nm. The devices are characterized over the temperature range of –25°C to 70°C.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Humidity:'''&lt;br /&gt;
&lt;br /&gt;
The HIH-4000 Series Humidity Sensors are designed specifically for high volume OEM (Original Equipment Manufacturer) users. Direct input to a controller or other device is made possible by this sensor’s linear voltage output. With a typical current draw of only 200 µA, the HIH-4000 Series is often ideally suited for low drain, battery operated systems. the RH sensor is a laser trimmed, thermoset polymer capacitive sensing element with on-chip integrated signal conditioning. The sensing element's multilayer construction provides excellent resistance to most application hazards such as wetting, dust, dirt, oils and common environmental chemicals.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Data PrintOut&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Temperature:'''&lt;br /&gt;
&lt;br /&gt;
The LM35 series are precision integrated-circuit temperature sensors, whose output voltage is linearly proportional to the Celsius (Centigrade) temperature. The LM35 thus has an advantage over linear temperature sensors calibrated in ° Kelvin, as the user is not required to subtract a large constant voltage from its output to obtain convenient Centigrade scaling. The LM35 does not require any external calibration or trimming to provide typical accuracies of ±1⁄4°C at room temperature and ±3⁄4°C over a full −55 to +150°C temperature range.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== '''Features'''&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
*Calibrated directly in ° Celsius (Centigrade)&lt;br /&gt;
*Linear + 10.0 mV/°C scale factor&lt;br /&gt;
*0.5°C accuracy guaranteeable (at +25°C)&lt;br /&gt;
*Rated for full −55° to +150°C range&lt;br /&gt;
*Suitable for remote applications&lt;br /&gt;
*Low cost due to wafer-level trimming&lt;br /&gt;
*Operates from 4 to 30 volts&lt;br /&gt;
*Less than 60 μA current drain&lt;br /&gt;
*Low self-heating, 0.08°C in still air&lt;br /&gt;
*Nonlinearity only ±1⁄4°C typical&lt;br /&gt;
*Low impedance output, 0.1 W for 1 mA load&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/BASCOM-8051_Overview</id>
		<title>BASCOM-8051 Overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/BASCOM-8051_Overview"/>
				<updated>2013-10-23T13:44:47Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:8051 logo n.png|center|8051 logo n.png]]&lt;br /&gt;
&lt;br /&gt;
'''BASCOM-8051'''© is the Windows BASIC COMPILER for the 8051 family.&amp;lt;br/&amp;gt;It is designed to run on '''XP/VISTA/WIN7/WIN8''' and has all the features of BASCOM LT.&amp;lt;br/&amp;gt;In addition it has full support for arrays and the single floating point data type.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Key Benefits'''&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Structured BASIC with labels.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Structured programming with IF-THEN-ELSE-END IF, DO-LOOP, WHILE-WEND, SELECT- CASE.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Fast machine code instead of interpreted code.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Variables and labels can be as long as 32 characters.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Bit, Byte, Integer, Word, Long, Single and String variables.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Compiled programs work with any 8051 uP such as AT89C1051, AT89C2051, 8031, 8032, 8051, 8052, 80552, 80535 and 80537  Processors.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Statements are highly compatible with Microsoft’s VB/QB.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Special commands for LCD-displays , I2C chips and 1WIRE chips.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Integrated terminal emulator with download option.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Integrated simulator for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Integrated flash programmer and support for SPI, PG2051, PG302, SE512, SE514, TAFE. (hardware can be purchased separately)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Editor with statement highlighting.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Context sensitive help.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For compatibility with BASCOM LT, there is also a 32-bit version of the BASCOM LT compiler.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;'''The following statements are supported''':&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Decision and structures'''&amp;lt;br/&amp;gt;IF, THEN, ELSE, ELSEIF, END IF, DO, LOOP, WHILE, WEND, UNTIL, EXIT DO, EXIT WHILE, FOR, NEXT, TO, DOWNTO, STEP, EXIT FOR, ON .. GOTO/GOSUB, SELECT, CASE.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Input and output'''&amp;lt;br/&amp;gt;PRINT, INPUT, INKEY, PRINTHEX, INPUTHEX, LCD, UPPERLINE, LOWERLINE,DISPLAY ON/OFF, CURSOR ON/OFF/BLINK/NOBLINK, HOME, LOCATE, SHIFTLCD LEFT/RIGHT, SHIFTCURSOR LEFT/RIGHT, CLS, DEFLCDCHAR, WAITKEY, INPUTBIN, PRINTBIN, LCDHEX, OPEN, CLOSE, DEBOUNCE, SHIFTIN, SHIFTOUT.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Numeric functions'''&amp;lt;br/&amp;gt;AND, OR, XOR, INC, DEC, MOD, NOT, ABS, BCD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''I2C'''&amp;lt;br/&amp;gt;I2CSTART, I2CSTOP, I2CWBYTE, I2CRBYTE, I2CSEND and I2CRECEIVE.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''1WIRE'''&amp;lt;br/&amp;gt;1WWRITE, 1WREAD, 1WRESET.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''SPI'''&amp;lt;br/&amp;gt;SPIINIT, SPIIN, SPIOUT.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Interrupt programming'''&amp;lt;br/&amp;gt;ON INT0/INT1/TIMER0/TIMER1/SERIAL, RETURN, ENABLE, DISABLE, PRIORITY SET/RESET, COUNTERx, CAPTUREx, INTERRUPTS, CONFIG, START, LOAD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Bit manipulation'''&amp;lt;br/&amp;gt;SET, RESET, ROTATE, BITWAIT.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Variables'''&amp;lt;br/&amp;gt;DIM, BIT , BYTE , INTEGER , WORD, LONG, SINGLE, STRING , DEFBIT, DEFBYTE, DEFINT, DEFWORD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Miscellaneous'''&amp;lt;br/&amp;gt;REM, ' , SWAP, END, STOP, CONST, DELAY, WAIT, WAITMS, GOTO, GOSUB, POWERDOWN, IDLE, DECLARE, CALL, SUB, END SUB, MAKEDEC, MAKEBCD, INP,OUT, ALIAS, DIM , ERASE, DATA, READ, RESTORE, INCR, DECR, PEEK, POKE, CPEEK, GETRC5.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Compiler directives'''&amp;lt;br/&amp;gt;$INCLUDE, $NOINIT, $BAUD and $CRYSTAL, $OBJ, $SERIALINPUT, $SERIALOUTPUT, $ROMSTART, $RAMSIZE, $RAMSTART, $MONSTART, $IRAMSTART, $DEFAULT XRAM, $ASM-$END ASM, $LCD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Conditional compilation'''&amp;lt;br/&amp;gt;#IF, #ELSE, #ENDIF&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''String manipulation'''&amp;lt;br/&amp;gt;STRING, SPACE, LEFT, RIGHT, MID, VAL, HEXVAL, LEN, STR, HEX, LCASE, UCASE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;'''To make a program takes just a few steps&amp;amp;nbsp;:'''&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Write the program in BASIC&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Compile it to fast machine binary code&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Test the result with the integrated simulator (with additional hardware you can simulate the hardware too)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Program the chip with one of the integrated programmers (hardware must be purchased separately)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The 8051 processor is included in many special chips.&amp;amp;nbsp; BASCOM creates standard 8051 object code. So the object code can run on any 8051 compatible processor.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;While we offer so called DAT files for many processors, it is impossible to write a DAT file for all the 8051 variants. The DAT files are however easy to make. They contain the hardware register names with their address.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;The only thing you need to take care about is that some processors have modified instruction cycles. This means that these processors execute code faster than a normal 8051. This can effect some statements like WAITMS, WAIT, DELAY and other software timed instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:larger&amp;quot;&amp;gt;'''IDE Overview'''&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;&amp;lt;br/&amp;gt;'''BASCOM-8051 IDE'''&amp;lt;/p&amp;gt;&lt;br /&gt;
[[File:8051 desc ide.png|center|8051 desc ide.png]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;&amp;lt;br/&amp;gt;'''BASCOM-8051 Simulator'''&amp;lt;/p&amp;gt;&lt;br /&gt;
[[File:8051 desc sim1.png|center|8051 desc sim1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:8051 desc sim2.png|center|8051 desc sim2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;'''BASCOM-8051 Programmer'''&amp;lt;/p&amp;gt;&lt;br /&gt;
[[File:8051 desc prog.png|center|8051 desc prog.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;'''BASCOM-8051 Graphic converter'''&amp;lt;/p&amp;gt;&lt;br /&gt;
[[File:8051 desc graph.png|center|8051 desc graph.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/BASCOM-8051_Overview</id>
		<title>BASCOM-8051 Overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/BASCOM-8051_Overview"/>
				<updated>2013-10-23T13:37:06Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:8051 logo n.png|center|8051 logo n.png]]&lt;br /&gt;
&lt;br /&gt;
'''BASCOM-8051'''© is the Windows BASIC COMPILER for the 8051 family.&amp;lt;br/&amp;gt;It is designed to run on '''XP/VISTA/WIN7/WIN8''' and has all the features of BASCOM LT.&amp;lt;br/&amp;gt;In addition it has full support for arrays and the single floating point data type.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Key Benefits'''&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Structured BASIC with labels.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Structured programming with IF-THEN-ELSE-END IF, DO-LOOP, WHILE-WEND, SELECT- CASE.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Fast machine code instead of interpreted code.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Variables and labels can be as long as 32 characters.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Bit, Byte, Integer, Word, Long, Single and String variables.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Compiled programs work with any 8051 uP such as AT89C1051, AT89C2051, 8031, 8032, 8051, 8052, 80552, 80535 and 80537  Processors.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Statements are highly compatible with Microsoft’s VB/QB.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Special commands for LCD-displays , I2C chips and 1WIRE chips.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Integrated terminal emulator with download option.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Integrated simulator for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Integrated flash programmer and support for SPI, PG2051, PG302, SE512, SE514, TAFE. (hardware can be purchased separately)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Editor with statement highlighting.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Context sensitive help.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For compatibility with BASCOM LT, there is also a 32-bit version of the BASCOM LT compiler.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;'''The following statements are supported''':&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Decision and structures'''&amp;lt;br/&amp;gt;IF, THEN, ELSE, ELSEIF, END IF, DO, LOOP, WHILE, WEND, UNTIL, EXIT DO, EXIT WHILE, FOR, NEXT, TO, DOWNTO, STEP, EXIT FOR, ON .. GOTO/GOSUB, SELECT, CASE.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Input and output'''&amp;lt;br/&amp;gt;PRINT, INPUT, INKEY, PRINTHEX, INPUTHEX, LCD, UPPERLINE, LOWERLINE,DISPLAY ON/OFF, CURSOR ON/OFF/BLINK/NOBLINK, HOME, LOCATE, SHIFTLCD LEFT/RIGHT, SHIFTCURSOR LEFT/RIGHT, CLS, DEFLCDCHAR, WAITKEY, INPUTBIN, PRINTBIN, LCDHEX, OPEN, CLOSE, DEBOUNCE, SHIFTIN, SHIFTOUT.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Numeric functions'''&amp;lt;br/&amp;gt;AND, OR, XOR, INC, DEC, MOD, NOT, ABS, BCD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''I2C'''&amp;lt;br/&amp;gt;I2CSTART, I2CSTOP, I2CWBYTE, I2CRBYTE, I2CSEND and I2CRECEIVE.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''1WIRE'''&amp;lt;br/&amp;gt;1WWRITE, 1WREAD, 1WRESET.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''SPI'''&amp;lt;br/&amp;gt;SPIINIT, SPIIN, SPIOUT.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Interrupt programming'''&amp;lt;br/&amp;gt;ON INT0/INT1/TIMER0/TIMER1/SERIAL, RETURN, ENABLE, DISABLE, PRIORITY SET/RESET, COUNTERx, CAPTUREx, INTERRUPTS, CONFIG, START, LOAD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Bit manipulation'''&amp;lt;br/&amp;gt;SET, RESET, ROTATE, BITWAIT.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Variables'''&amp;lt;br/&amp;gt;DIM, BIT , BYTE , INTEGER , WORD, LONG, SINGLE, STRING , DEFBIT, DEFBYTE, DEFINT, DEFWORD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Miscellaneous'''&amp;lt;br/&amp;gt;REM, ' , SWAP, END, STOP, CONST, DELAY, WAIT, WAITMS, GOTO, GOSUB, POWERDOWN, IDLE, DECLARE, CALL, SUB, END SUB, MAKEDEC, MAKEBCD, INP,OUT, ALIAS, DIM , ERASE, DATA, READ, RESTORE, INCR, DECR, PEEK, POKE, CPEEK, GETRC5.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Compiler directives'''&amp;lt;br/&amp;gt;$INCLUDE, $NOINIT, $BAUD and $CRYSTAL, $OBJ, $SERIALINPUT, $SERIALOUTPUT, $ROMSTART, $RAMSIZE, $RAMSTART, $MONSTART, $IRAMSTART, $DEFAULT XRAM, $ASM-$END ASM, $LCD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Conditional compilation'''&amp;lt;br/&amp;gt;#IF, #ELSE, #ENDIF&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''String manipulation'''&amp;lt;br/&amp;gt;STRING, SPACE, LEFT, RIGHT, MID, VAL, HEXVAL, LEN, STR, HEX, LCASE, UCASE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;'''To make a program takes just a few steps&amp;amp;nbsp;:'''&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Write the program in BASIC&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Compile it to fast machine binary code&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Test the result with the integrated simulator (with additional hardware you can simulate the hardware too)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Program the chip with one of the integrated programmers (hardware must be purchased separately)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The 8051 processor is included in many special chips.&amp;amp;nbsp; BASCOM creates standard 8051 object code. So the object code can run on any 8051 compatible processor.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;While we offer so called DAT files for many processors, it is impossible to write a DAT file for all the 8051 variants. The DAT files are however easy to make. They contain the hardware register names with their address.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;The only thing you need to take care about is that some processors have modified instruction cycles. This means that these processors execute code faster than a normal 8051. This can effect some statements like WAITMS, WAIT, DELAY and other software timed instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:larger&amp;quot;&amp;gt;'''IDE Overview'''&amp;lt;/span&amp;gt;''&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;&amp;lt;br/&amp;gt;'''BASCOM-8051 IDE'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;[[File:8051 desc ide.png|center]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''BASCOM-8051 Simulator'''&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;[[File:8051 desc sim1.png|center]]&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;[[File:8051 desc sim2.png|center]]&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;'''BASCOM-8051 Programmer'''&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;[[File:8051 desc prog.png|center]]&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;'''BASCOM-8051 Graphic converter'''&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;[[File:8051 desc graph.png|center]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/File:8051_desc_sim2.png</id>
		<title>File:8051 desc sim2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/File:8051_desc_sim2.png"/>
				<updated>2013-10-23T13:33:42Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/File:8051_desc_sim1.png</id>
		<title>File:8051 desc sim1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/File:8051_desc_sim1.png"/>
				<updated>2013-10-23T13:33:17Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/File:8051_desc_prog.png</id>
		<title>File:8051 desc prog.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/File:8051_desc_prog.png"/>
				<updated>2013-10-23T13:32:53Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/File:8051_desc_ide.png</id>
		<title>File:8051 desc ide.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/File:8051_desc_ide.png"/>
				<updated>2013-10-23T13:32:30Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/File:8051_desc_graph.png</id>
		<title>File:8051 desc graph.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/File:8051_desc_graph.png"/>
				<updated>2013-10-23T13:32:07Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/BASCOM-8051_Overview</id>
		<title>BASCOM-8051 Overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/BASCOM-8051_Overview"/>
				<updated>2013-10-23T09:41:42Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:8051 logo n.png|center]]&lt;br /&gt;
&lt;br /&gt;
'''BASCOM-8051'''© is the Windows BASIC COMPILER for the 8051 family.&amp;lt;br/&amp;gt;It is designed to run on '''XP/VISTA/WIN7/WIN8''' and has all the features of BASCOM LT.&amp;lt;br/&amp;gt;In addition it has full support for arrays and the single floating point data type.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Key Benefits'''&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Structured BASIC with labels.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Structured programming with IF-THEN-ELSE-END IF, DO-LOOP, WHILE-WEND, SELECT- CASE.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Fast machine code instead of interpreted code.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Variables and labels can be as long as 32 characters.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Bit, Byte, Integer, Word, Long, Single and String variables.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Compiled programs work with any 8051 uP such as AT89C1051, AT89C2051, 8031, 8032, 8051, 8052, 80552, 80535 and 80537  Processors.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Statements are highly compatible with Microsoft’s VB/QB.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Special commands for LCD-displays , I2C chips and 1WIRE chips.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Integrated terminal emulator with download option.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Integrated simulator for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Integrated flash programmer and support for SPI, PG2051, PG302, SE512, SE514, TAFE. (hardware can be purchased separately)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Editor with statement highlighting.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Context sensitive help.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For compatibility with BASCOM LT, there is also a 32-bit version of the BASCOM LT compiler.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;'''The following statements are supported''':&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Decision and structures'''&amp;lt;br/&amp;gt;IF, THEN, ELSE, ELSEIF, END IF, DO, LOOP, WHILE, WEND, UNTIL, EXIT DO, EXIT WHILE, FOR, NEXT, TO, DOWNTO, STEP, EXIT FOR, ON .. GOTO/GOSUB, SELECT, CASE.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Input and output'''&amp;lt;br/&amp;gt;PRINT, INPUT, INKEY, PRINTHEX, INPUTHEX, LCD, UPPERLINE, LOWERLINE,DISPLAY ON/OFF, CURSOR ON/OFF/BLINK/NOBLINK, HOME, LOCATE, SHIFTLCD LEFT/RIGHT, SHIFTCURSOR LEFT/RIGHT, CLS, DEFLCDCHAR, WAITKEY, INPUTBIN, PRINTBIN, LCDHEX, OPEN, CLOSE, DEBOUNCE, SHIFTIN, SHIFTOUT.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Numeric functions'''&amp;lt;br/&amp;gt;AND, OR, XOR, INC, DEC, MOD, NOT, ABS, BCD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''I2C'''&amp;lt;br/&amp;gt;I2CSTART, I2CSTOP, I2CWBYTE, I2CRBYTE, I2CSEND and I2CRECEIVE.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''1WIRE'''&amp;lt;br/&amp;gt;1WWRITE, 1WREAD, 1WRESET.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''SPI'''&amp;lt;br/&amp;gt;SPIINIT, SPIIN, SPIOUT.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Interrupt programming'''&amp;lt;br/&amp;gt;ON INT0/INT1/TIMER0/TIMER1/SERIAL, RETURN, ENABLE, DISABLE, PRIORITY SET/RESET, COUNTERx, CAPTUREx, INTERRUPTS, CONFIG, START, LOAD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Bit manipulation'''&amp;lt;br/&amp;gt;SET, RESET, ROTATE, BITWAIT.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Variables'''&amp;lt;br/&amp;gt;DIM, BIT , BYTE , INTEGER , WORD, LONG, SINGLE, STRING , DEFBIT, DEFBYTE, DEFINT, DEFWORD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Miscellaneous'''&amp;lt;br/&amp;gt;REM, ' , SWAP, END, STOP, CONST, DELAY, WAIT, WAITMS, GOTO, GOSUB, POWERDOWN, IDLE, DECLARE, CALL, SUB, END SUB, MAKEDEC, MAKEBCD, INP,OUT, ALIAS, DIM , ERASE, DATA, READ, RESTORE, INCR, DECR, PEEK, POKE, CPEEK, GETRC5.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Compiler directives'''&amp;lt;br/&amp;gt;$INCLUDE, $NOINIT, $BAUD and $CRYSTAL, $OBJ, $SERIALINPUT, $SERIALOUTPUT, $ROMSTART, $RAMSIZE, $RAMSTART, $MONSTART, $IRAMSTART, $DEFAULT XRAM, $ASM-$END ASM, $LCD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Conditional compilation'''&amp;lt;br/&amp;gt;#IF, #ELSE, #ENDIF&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''String manipulation'''&amp;lt;br/&amp;gt;STRING, SPACE, LEFT, RIGHT, MID, VAL, HEXVAL, LEN, STR, HEX, LCASE, UCASE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;'''To make a program takes just a few steps&amp;amp;nbsp;:'''&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Write the program in BASIC&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Compile it to fast machine binary code&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Test the result with the integrated simulator (with additional hardware you can simulate the hardware too)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Program the chip with one of the integrated programmers (hardware must be purchased separately)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The 8051 processor is included in many special chips.&amp;amp;nbsp; BASCOM creates standard 8051 object code. So the object code can run on any 8051 compatible processor.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;While we offer so called DAT files for many processors, it is impossible to write a DAT file for all the 8051 variants. The DAT files are however easy to make. They contain the hardware register names with their address.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;The only thing you need to take care about is that some processors have modified instruction cycles. This means that these processors execute code faster than a normal 8051. This can effect some statements like WAITMS, WAIT, DELAY and other software timed instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:larger&amp;quot;&amp;gt;'''IDE Overview'''&amp;lt;/span&amp;gt;''&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;&amp;lt;br/&amp;gt;'''BASCOM-8051 IDE'''&amp;lt;/p&amp;gt;&lt;br /&gt;
[[File:8051 ndesc 1.jpg|center|8051 ndesc 1.jpg]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''BASCOM-8051 Simulator'''&amp;lt;/p&amp;gt;&lt;br /&gt;
[[File:8051 ndesc 2.jpg|center|8051 ndesc 2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/File:8051_logo_n.png</id>
		<title>File:8051 logo n.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/File:8051_logo_n.png"/>
				<updated>2013-10-23T09:39:46Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/BASCOM-8051_Overview</id>
		<title>BASCOM-8051 Overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/BASCOM-8051_Overview"/>
				<updated>2013-10-23T08:38:49Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''BASCOM-8051'''© is the Windows BASIC COMPILER for the 8051 family.&amp;lt;br/&amp;gt;It is designed to run on '''XP/VISTA/WIN7/WIN8''' and has all the features of BASCOM LT.&amp;lt;br/&amp;gt;In addition it has full support for arrays and the single floating point data type.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Key Benefits'''&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Structured BASIC with labels.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Structured programming with IF-THEN-ELSE-END IF, DO-LOOP, WHILE-WEND, SELECT- CASE.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Fast machine code instead of interpreted code.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Variables and labels can be as long as 32 characters.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Bit, Byte, Integer, Word, Long, Single and String variables.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Compiled programs work with any 8051 uP such as AT89C1051, AT89C2051, 8031, 8032, 8051, 8052, 80552, 80535 and 80537  Processors.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Statements are highly compatible with Microsoft’s VB/QB.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Special commands for LCD-displays , I2C chips and 1WIRE chips.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Integrated terminal emulator with download option.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Integrated simulator for testing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Integrated flash programmer and support for SPI, PG2051, PG302, SE512, SE514, TAFE. (hardware can be purchased separately)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Editor with statement highlighting.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Context sensitive help.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For compatibility with BASCOM LT, there is also a 32-bit version of the BASCOM LT compiler.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;'''The following statements are supported''':&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Decision and structures'''&amp;lt;br/&amp;gt;IF, THEN, ELSE, ELSEIF, END IF, DO, LOOP, WHILE, WEND, UNTIL, EXIT DO, EXIT WHILE, FOR, NEXT, TO, DOWNTO, STEP, EXIT FOR, ON .. GOTO/GOSUB, SELECT, CASE.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Input and output'''&amp;lt;br/&amp;gt;PRINT, INPUT, INKEY, PRINTHEX, INPUTHEX, LCD, UPPERLINE, LOWERLINE,DISPLAY ON/OFF, CURSOR ON/OFF/BLINK/NOBLINK, HOME, LOCATE, SHIFTLCD LEFT/RIGHT, SHIFTCURSOR LEFT/RIGHT, CLS, DEFLCDCHAR, WAITKEY, INPUTBIN, PRINTBIN, LCDHEX, OPEN, CLOSE, DEBOUNCE, SHIFTIN, SHIFTOUT.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Numeric functions'''&amp;lt;br/&amp;gt;AND, OR, XOR, INC, DEC, MOD, NOT, ABS, BCD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''I2C'''&amp;lt;br/&amp;gt;I2CSTART, I2CSTOP, I2CWBYTE, I2CRBYTE, I2CSEND and I2CRECEIVE.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''1WIRE'''&amp;lt;br/&amp;gt;1WWRITE, 1WREAD, 1WRESET.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''SPI'''&amp;lt;br/&amp;gt;SPIINIT, SPIIN, SPIOUT.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Interrupt programming'''&amp;lt;br/&amp;gt;ON INT0/INT1/TIMER0/TIMER1/SERIAL, RETURN, ENABLE, DISABLE, PRIORITY SET/RESET, COUNTERx, CAPTUREx, INTERRUPTS, CONFIG, START, LOAD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Bit manipulation'''&amp;lt;br/&amp;gt;SET, RESET, ROTATE, BITWAIT.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Variables'''&amp;lt;br/&amp;gt;DIM, BIT , BYTE , INTEGER , WORD, LONG, SINGLE, STRING , DEFBIT, DEFBYTE, DEFINT, DEFWORD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Miscellaneous'''&amp;lt;br/&amp;gt;REM, ' , SWAP, END, STOP, CONST, DELAY, WAIT, WAITMS, GOTO, GOSUB, POWERDOWN, IDLE, DECLARE, CALL, SUB, END SUB, MAKEDEC, MAKEBCD, INP,OUT, ALIAS, DIM , ERASE, DATA, READ, RESTORE, INCR, DECR, PEEK, POKE, CPEEK, GETRC5.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Compiler directives'''&amp;lt;br/&amp;gt;$INCLUDE, $NOINIT, $BAUD and $CRYSTAL, $OBJ, $SERIALINPUT, $SERIALOUTPUT, $ROMSTART, $RAMSIZE, $RAMSTART, $MONSTART, $IRAMSTART, $DEFAULT XRAM, $ASM-$END ASM, $LCD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Conditional compilation'''&amp;lt;br/&amp;gt;#IF, #ELSE, #ENDIF&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''String manipulation'''&amp;lt;br/&amp;gt;STRING, SPACE, LEFT, RIGHT, MID, VAL, HEXVAL, LEN, STR, HEX, LCASE, UCASE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;'''To make a program takes just a few steps&amp;amp;nbsp;:'''&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Write the program in BASIC&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Compile it to fast machine binary code&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Test the result with the integrated simulator (with additional hardware you can simulate the hardware too)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Program the chip with one of the integrated programmers (hardware must be purchased separately)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The 8051 processor is included in many special chips.&amp;amp;nbsp; BASCOM creates standard 8051 object code. So the object code can run on any 8051 compatible processor.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;While we offer so called DAT files for many processors, it is impossible to write a DAT file for all the 8051 variants. The DAT files are however easy to make. They contain the hardware register names with their address.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;The only thing you need to take care about is that some processors have modified instruction cycles. This means that these processors execute code faster than a normal 8051. This can effect some statements like WAITMS, WAIT, DELAY and other software timed instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:larger&amp;quot;&amp;gt;'''IDE Overview'''&amp;lt;/span&amp;gt;''&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;&amp;lt;br/&amp;gt;'''BASCOM-8051 IDE'''&amp;lt;/p&amp;gt;&lt;br /&gt;
[[File:8051 ndesc 1.jpg|center|8051 ndesc 1.jpg]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''BASCOM-8051 Simulator'''&amp;lt;/p&amp;gt;&lt;br /&gt;
[[File:8051 ndesc 2.jpg|center|8051 ndesc 2.jpg]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/MCS_Wiki_Main_entry</id>
		<title>MCS Wiki Main entry</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/MCS_Wiki_Main_entry"/>
				<updated>2013-10-23T08:35:48Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Mcswiki logo.png|center|Mcswiki logo.png]]&lt;br /&gt;
&lt;br /&gt;
= BASCOM Family =&lt;br /&gt;
&lt;br /&gt;
*[[BASCOM-8051 Overview]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= BASCOM Manuals =&lt;br /&gt;
&lt;br /&gt;
*[http://wiki.mcselec.com/bavr/ BASCOM-AVR manual]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= User projects =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 80%&amp;quot; align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;categorytree mode=&amp;quot;pages&amp;quot;&amp;gt;Projects&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
| &amp;lt;br/&amp;gt;&lt;br /&gt;
| &amp;lt;categorytree mode=&amp;quot;pages&amp;quot;&amp;gt;Arduino Ethernet with Bascom-AVR&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 80%&amp;quot; align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;categorytree mode=&amp;quot;pages&amp;quot;&amp;gt;Miscellaneous stuff&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
| &amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Languages}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/BASCOM-8051_Overview</id>
		<title>BASCOM-8051 Overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/BASCOM-8051_Overview"/>
				<updated>2013-10-23T08:31:36Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''BASCOM-8051'''© is the Windows BASIC COMPILER for the 8051 family.&amp;lt;br/&amp;gt;It is designed to run on '''XP/VISTA/WIN7/WIN8''' and has all the features of BASCOM LT.&amp;lt;br/&amp;gt;In addition it has full support for arrays and the single floating point data type.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Key Benefits'''&lt;br /&gt;
&lt;br /&gt;
*Structured BASIC with labels.&lt;br /&gt;
*Structured programming with IF-THEN-ELSE-END IF, DO-LOOP, WHILE-WEND, SELECT- CASE.&lt;br /&gt;
*Fast machine code instead of interpreted code.&lt;br /&gt;
*Variables and labels can be as long as 32 characters.&lt;br /&gt;
*Bit, Byte, Integer, Word, Long, Single and String variables.&lt;br /&gt;
*Compiled programs work with any 8051 uP such as AT89C1051, AT89C2051, 8031, 8032, 8051, 8052, 80552, 80535 and 80537  Processors.&lt;br /&gt;
*Statements are highly compatible with Microsoft’s VB/QB.&lt;br /&gt;
*Special commands for LCD-displays , I2C chips and 1WIRE chips.&lt;br /&gt;
*Integrated terminal emulator with download option.&lt;br /&gt;
*Integrated simulator for testing.&lt;br /&gt;
*Integrated flash programmer and support for SPI, PG2051, PG302, SE512, SE514, TAFE. (hardware can be purchased separately)&lt;br /&gt;
*Editor with statement highlighting.&lt;br /&gt;
*Context sensitive help.&lt;br /&gt;
*For compatibility with BASCOM LT, there is also a 32-bit version of the BASCOM LT compiler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;'''The following statements are supported''':&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Decision and structures'''&amp;lt;br/&amp;gt;IF, THEN, ELSE, ELSEIF, END IF, DO, LOOP, WHILE, WEND, UNTIL, EXIT DO, EXIT WHILE, FOR, NEXT, TO, DOWNTO, STEP, EXIT FOR, ON .. GOTO/GOSUB, SELECT, CASE.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Input and output'''&amp;lt;br/&amp;gt;PRINT, INPUT, INKEY, PRINTHEX, INPUTHEX, LCD, UPPERLINE, LOWERLINE,DISPLAY ON/OFF, CURSOR ON/OFF/BLINK/NOBLINK, HOME, LOCATE, SHIFTLCD LEFT/RIGHT, SHIFTCURSOR LEFT/RIGHT, CLS, DEFLCDCHAR, WAITKEY, INPUTBIN, PRINTBIN, LCDHEX, OPEN, CLOSE, DEBOUNCE, SHIFTIN, SHIFTOUT.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Numeric functions'''&amp;lt;br/&amp;gt;AND, OR, XOR, INC, DEC, MOD, NOT, ABS, BCD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''I2C'''&amp;lt;br/&amp;gt;I2CSTART, I2CSTOP, I2CWBYTE, I2CRBYTE, I2CSEND and I2CRECEIVE.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''1WIRE'''&amp;lt;br/&amp;gt;1WWRITE, 1WREAD, 1WRESET.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''SPI'''&amp;lt;br/&amp;gt;SPIINIT, SPIIN, SPIOUT.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Interrupt programming'''&amp;lt;br/&amp;gt;ON INT0/INT1/TIMER0/TIMER1/SERIAL, RETURN, ENABLE, DISABLE, PRIORITY SET/RESET, COUNTERx, CAPTUREx, INTERRUPTS, CONFIG, START, LOAD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Bit manipulation'''&amp;lt;br/&amp;gt;SET, RESET, ROTATE, BITWAIT.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Variables'''&amp;lt;br/&amp;gt;DIM, BIT , BYTE , INTEGER , WORD, LONG, SINGLE, STRING , DEFBIT, DEFBYTE, DEFINT, DEFWORD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Miscellaneous'''&amp;lt;br/&amp;gt;REM, ' , SWAP, END, STOP, CONST, DELAY, WAIT, WAITMS, GOTO, GOSUB, POWERDOWN, IDLE, DECLARE, CALL, SUB, END SUB, MAKEDEC, MAKEBCD, INP,OUT, ALIAS, DIM , ERASE, DATA, READ, RESTORE, INCR, DECR, PEEK, POKE, CPEEK, GETRC5.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Compiler directives'''&amp;lt;br/&amp;gt;$INCLUDE, $NOINIT, $BAUD and $CRYSTAL, $OBJ, $SERIALINPUT, $SERIALOUTPUT, $ROMSTART, $RAMSIZE, $RAMSTART, $MONSTART, $IRAMSTART, $DEFAULT XRAM, $ASM-$END ASM, $LCD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Conditional compilation'''&amp;lt;br/&amp;gt;#IF, #ELSE, #ENDIF&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''String manipulation'''&amp;lt;br/&amp;gt;STRING, SPACE, LEFT, RIGHT, MID, VAL, HEXVAL, LEN, STR, HEX, LCASE, UCASE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;'''To make a program takes just a few steps&amp;amp;nbsp;:'''&lt;br /&gt;
&lt;br /&gt;
*Write the program in BASIC&lt;br /&gt;
*Compile it to fast machine binary code&lt;br /&gt;
*Test the result with the integrated simulator (with additional hardware you can simulate the hardware too)&lt;br /&gt;
*Program the chip with one of the integrated programmers (hardware must be purchased separately)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The 8051 processor is included in many special chips.&amp;amp;nbsp; BASCOM creates standard 8051 object code. So the object code can run on any 8051 compatible processor.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;While we offer so called DAT files for many processors, it is impossible to write a DAT file for all the 8051 variants. The DAT files are however easy to make. They contain the hardware register names with their address.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;The only thing you need to take care about is that some processors have modified instruction cycles. This means that these processors execute code faster than a normal 8051. This can effect some statements like WAITMS, WAIT, DELAY and other software timed instructions.&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:larger&amp;quot;&amp;gt;'''IDE Overview'''&amp;lt;/span&amp;gt;''&amp;lt;/p&amp;gt;&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;&amp;lt;br/&amp;gt;'''BASCOM-8051 IDE'''&amp;lt;/p&amp;gt;&lt;br /&gt;
[[File:8051 ndesc 1.jpg|center|8051 ndesc 1.jpg]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: center&amp;quot;&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''BASCOM-8051 Simulator'''&amp;lt;/p&amp;gt;&lt;br /&gt;
[[File:8051 ndesc 2.jpg|center|8051 ndesc 2.jpg]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/BASCOM-8051_Overview</id>
		<title>BASCOM-8051 Overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/BASCOM-8051_Overview"/>
				<updated>2013-10-23T08:28:03Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;'''BASCOM-8051'''© is the Windows BASIC COMPILER for the 8051 family.&amp;lt;br/&amp;gt;It is designed to run on '''XP/VISTA/WIN7/WIN8''' and has all the features of BASCOM LT.&amp;lt;br/&amp;gt;In addi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''BASCOM-8051'''© is the Windows BASIC COMPILER for the 8051 family.&amp;lt;br/&amp;gt;It is designed to run on '''XP/VISTA/WIN7/WIN8''' and has all the features of BASCOM LT.&amp;lt;br/&amp;gt;In addition it has full support for arrays and the single floating point data type.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Key Benefits'''&lt;br /&gt;
&lt;br /&gt;
*Structured BASIC with labels.&lt;br /&gt;
*Structured programming with IF-THEN-ELSE-END IF, DO-LOOP, WHILE-WEND, SELECT- CASE.&lt;br /&gt;
*Fast machine code instead of interpreted code.&lt;br /&gt;
*Variables and labels can be as long as 32 characters.&lt;br /&gt;
*Bit, Byte, Integer, Word, Long, Single and String variables.&lt;br /&gt;
*Compiled programs work with any 8051 uP such as AT89C1051, AT89C2051, 8031, 8032, 8051, 8052, 80552, 80535 and 80537  Processors.&lt;br /&gt;
*Statements are highly compatible with Microsoft’s VB/QB.&lt;br /&gt;
*Special commands for LCD-displays , I2C chips and 1WIRE chips.&lt;br /&gt;
*Integrated terminal emulator with download option.&lt;br /&gt;
*Integrated simulator for testing.&lt;br /&gt;
*Integrated flash programmer and support for SPI, PG2051, PG302, SE512, SE514, TAFE. (hardware can be purchased separately)&lt;br /&gt;
*Editor with statement highlighting.&lt;br /&gt;
*Context sensitive help.&lt;br /&gt;
*For compatibility with BASCOM LT, there is also a 32-bit version of the BASCOM LT compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;'''The following statements are supported''':&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Decision and structures'''&amp;lt;br/&amp;gt;IF, THEN, ELSE, ELSEIF, END IF, DO, LOOP, WHILE, WEND, UNTIL, EXIT DO, EXIT WHILE, FOR, NEXT, TO, DOWNTO, STEP, EXIT FOR, ON .. GOTO/GOSUB, SELECT, CASE.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Input and output'''&amp;lt;br/&amp;gt;PRINT, INPUT, INKEY, PRINTHEX, INPUTHEX, LCD, UPPERLINE, LOWERLINE,DISPLAY ON/OFF, CURSOR ON/OFF/BLINK/NOBLINK, HOME, LOCATE, SHIFTLCD LEFT/RIGHT, SHIFTCURSOR LEFT/RIGHT, CLS, DEFLCDCHAR, WAITKEY, INPUTBIN, PRINTBIN, LCDHEX, OPEN, CLOSE, DEBOUNCE, SHIFTIN, SHIFTOUT.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Numeric functions'''&amp;lt;br/&amp;gt;AND, OR, XOR, INC, DEC, MOD, NOT, ABS, BCD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''I2C'''&amp;lt;br/&amp;gt;I2CSTART, I2CSTOP, I2CWBYTE, I2CRBYTE, I2CSEND and I2CRECEIVE.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''1WIRE'''&amp;lt;br/&amp;gt;1WWRITE, 1WREAD, 1WRESET.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''SPI'''&amp;lt;br/&amp;gt;SPIINIT, SPIIN, SPIOUT.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Interrupt programming'''&amp;lt;br/&amp;gt;ON INT0/INT1/TIMER0/TIMER1/SERIAL, RETURN, ENABLE, DISABLE, PRIORITY SET/RESET, COUNTERx, CAPTUREx, INTERRUPTS, CONFIG, START, LOAD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Bit manipulation'''&amp;lt;br/&amp;gt;SET, RESET, ROTATE, BITWAIT.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Variables'''&amp;lt;br/&amp;gt;DIM, BIT , BYTE , INTEGER , WORD, LONG, SINGLE, STRING , DEFBIT, DEFBYTE, DEFINT, DEFWORD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Miscellaneous'''&amp;lt;br/&amp;gt;REM, ' , SWAP, END, STOP, CONST, DELAY, WAIT, WAITMS, GOTO, GOSUB, POWERDOWN, IDLE, DECLARE, CALL, SUB, END SUB, MAKEDEC, MAKEBCD, INP,OUT, ALIAS, DIM , ERASE, DATA, READ, RESTORE, INCR, DECR, PEEK, POKE, CPEEK, GETRC5.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Compiler directives'''&amp;lt;br/&amp;gt;$INCLUDE, $NOINIT, $BAUD and $CRYSTAL, $OBJ, $SERIALINPUT, $SERIALOUTPUT, $ROMSTART, $RAMSIZE, $RAMSTART, $MONSTART, $IRAMSTART, $DEFAULT XRAM, $ASM-$END ASM, $LCD.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''Conditional compilation'''&amp;lt;br/&amp;gt;#IF, #ELSE, #ENDIF&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''String manipulation'''&amp;lt;br/&amp;gt;STRING, SPACE, LEFT, RIGHT, MID, VAL, HEXVAL, LEN, STR, HEX, LCASE, UCASE&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''To make a program takes just a few steps&amp;amp;nbsp;:'''&lt;br /&gt;
&lt;br /&gt;
*Write the program in BASIC&lt;br /&gt;
*Compile it to fast machine binary code&lt;br /&gt;
*Test the result with the integrated simulator (with additional hardware you can simulate the hardware too)&lt;br /&gt;
*Program the chip with one of the integrated programmers (hardware must be purchased separately)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The 8051 processor is included in many special chips.&amp;amp;nbsp; BASCOM creates standard 8051 object code. So the object code can run on any 8051 compatible processor.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;While we offer so called DAT files for many processors, it is impossible to write a DAT file for all the 8051 variants. The DAT files are however easy to make. They contain the hardware register names with their address.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;The only thing you need to take care about is that some processors have modified instruction cycles. This means that these processors execute code faster than a normal 8051. This can effect some statements like WAITMS, WAIT, DELAY and other software timed instructions.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''BASCOM-8051 IDE'''&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;[[File:8051 ndesc 1.jpg|center]]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'''BASCOM-8051 Simulator'''&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;[[File:8051 ndesc 2.jpg|center]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/File:8051_ndesc_2.jpg</id>
		<title>File:8051 ndesc 2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/File:8051_ndesc_2.jpg"/>
				<updated>2013-10-23T08:27:11Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/File:8051_ndesc_1.jpg</id>
		<title>File:8051 ndesc 1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/File:8051_ndesc_1.jpg"/>
				<updated>2013-10-23T08:26:48Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/Electronics_Calculators</id>
		<title>Electronics Calculators</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/Electronics_Calculators"/>
				<updated>2013-06-18T08:00:09Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi guys,&lt;br /&gt;
&lt;br /&gt;
Had a little chat with Roman Black (The man in the know, when it comes to SPMS) via email the other day about a SMPS calculator that I had written. He checked it out and suggested that I post the MC34063A SMPS calculator on a site.&lt;br /&gt;
&lt;br /&gt;
I had a couple of other calculators as well that Roman didn't know about, so I put them on my site as well. here's the direct link&lt;br /&gt;
&lt;br /&gt;
[http://www.deanus.leviathan.net.au/Electronics_calculators.html] http://www.deanus.leviathan.net.au/Electronics_calculators.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All calculators are written by me in VB6. I didn't use any 3rd Party DLL's or OCX so none are required that I can remember.&lt;br /&gt;
You might need the VB6 runtime, I think all latter versions of windows had it already on installation) Only running them will tell if it's on your computer.  All programs are Virus checked before posting, but check them after unzipping to make sure nobody has got at them.'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Give me an email If you have any problems. (address is on the site.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- '''MC34063A SMPS'''&lt;br /&gt;
If the input voltage is greater than the output voltage, the circuit given will be a buck converter.&lt;br /&gt;
If the less voltage is less than the output voltage, the circuit given will be a boost converter.&lt;br /&gt;
If the input voltage is positive but the output is negative, the circuit given will be a negative converter.&lt;br /&gt;
The circuit will change to the correct one when you click &amp;quot;Calculate&amp;quot;.&lt;br /&gt;
It will supply you with a bill of materials list as well. The whole window can be printed to the default printer.&lt;br /&gt;
&lt;br /&gt;
[[File:Wwb_img1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- '''DAC Error'''&lt;br /&gt;
Enter the DACs reference voltage OR the operating voltage of the&lt;br /&gt;
chip that the DAC is connected to (in the case of an R2R type DAC).&lt;br /&gt;
&lt;br /&gt;
[[File:DAC_Err.png]]&lt;br /&gt;
&lt;br /&gt;
Enter the absolute Maximum number that the DAC can accept.&lt;br /&gt;
Or optionally select the correct bit number from the drop down list.&lt;br /&gt;
On selection, the correct maximum is placed in the DAC maximum box.&lt;br /&gt;
Now press &amp;quot;Go&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The voltage per DAC step is calculated an displayed in the yellow&lt;br /&gt;
&amp;quot;Volts Per Step&amp;quot; box.&lt;br /&gt;
&lt;br /&gt;
That part of the program only calculates voltage per DAC step.&lt;br /&gt;
Because the voltage is analogue, (points of volts) and the DAC&lt;br /&gt;
deals in integer (whole numbers, The DAC has an error that cannot&lt;br /&gt;
be got around.. To find the step per number value, the ref voltage&lt;br /&gt;
Is divided by the maximum number of steps of the DAC.&lt;br /&gt;
In the case of a 5V ref/8Bit(255), 5/255 = 0.0196v per step.&lt;br /&gt;
&lt;br /&gt;
To find the error, lets say we want 4V output.&lt;br /&gt;
To find the amount of steps that this requires is 4/0.0196=204.08&lt;br /&gt;
Since the DAC can't do .08 (whole digits only) the number is really&lt;br /&gt;
204.. But 204 * 0.0196 3.998V NOT the 4v that is required.&lt;br /&gt;
&lt;br /&gt;
So the second part of the program does exactly that, you input a&lt;br /&gt;
voltage that you would like to get out of the DAC, and the program&lt;br /&gt;
Shows you the actual &amp;quot;Real&amp;quot; voltage that you will get.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- '''DAC (R2R type)'''&lt;br /&gt;
&lt;br /&gt;
Allows the user to calculate the output voltage of an R2R DAC&lt;br /&gt;
The program can do calculations for DACs from 3 to 10 bits with&lt;br /&gt;
very good accuracy&lt;br /&gt;
Very easy to use and very intuitive.&lt;br /&gt;
&lt;br /&gt;
[[File:R2R.jpg]]&lt;br /&gt;
&lt;br /&gt;
Calculate the output voltage of a DAC given the operating voltage&lt;br /&gt;
(or Vref) of the DAC.&lt;br /&gt;
Easy steps change the operating parameters live and the results&lt;br /&gt;
are instantly displayed.&lt;br /&gt;
&lt;br /&gt;
Setup:&lt;br /&gt;
Not much to do here,&lt;br /&gt;
Just type in the voltage of the VRef ( on the DAC type that has a&lt;br /&gt;
VRef input ) or for DAC's that just have the R2R resistor network,&lt;br /&gt;
enter the operating voltage of the chip.&lt;br /&gt;
You will notice that the voltage per step changes as the voltage&lt;br /&gt;
i/p's changed.&lt;br /&gt;
Select the number of bits that the DAC has as an output (Default is 3),&lt;br /&gt;
but the range is 3 to 10bits. The layout will change to fit the graphic&lt;br /&gt;
view of the selected bits.&lt;br /&gt;
Enter a number in any of the boxes marked Hex,Decimal or Binary.&lt;br /&gt;
When the cursor is clicked in another box then the screen is updated.&lt;br /&gt;
You will notice that the boxes that you did NOT type in have now&lt;br /&gt;
been updated with the correct value and format for that box.&lt;br /&gt;
&lt;br /&gt;
NOTE: If you type alpha characters in the Binary or Decimal boxes,&lt;br /&gt;
then the characters will be removed and any numbers left behind will&lt;br /&gt;
be used, this will result in an unknown number and is not recommended.&lt;br /&gt;
Any character greater than &amp;quot;F&amp;quot; in the hex box is removed and ignored.&lt;br /&gt;
&lt;br /&gt;
The output voltage is now displayed in the box at the lower right of&lt;br /&gt;
the window. To change the value Bit by Bit, you can click on the&lt;br /&gt;
check boxes. after each change, the screen is updated to reflect&lt;br /&gt;
the new value. Hex,Decimal and Bin are also updated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- '''LED resistor'''&lt;br /&gt;
-Not much to say here, Select you input voltage,&lt;br /&gt;
-Enter a LED Voltage or select the LED from the pull down menu&lt;br /&gt;
-Enter the current you wish to run (according to the specs of the LED)&lt;br /&gt;
Click Calculate, Shows the resistor value in Ohm.&lt;br /&gt;
&lt;br /&gt;
[[File:Led_Calc.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- '''Voltage divider'''&lt;br /&gt;
Enter a supply voltage. Select what you want to find using the option buttons, and enter the two missing parameters. Eg Find- R1, Enter an R2 and an output voltage click &amp;quot;calculate.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:Divider_calc.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- '''LM317 (voltage &amp;amp; current modes.)'''&lt;br /&gt;
Allows the user to calculate the voltage calculate the output voltage, or a constant output current.&lt;br /&gt;
Misc section contains pinouts of common regs and resistor ranges and values.&lt;br /&gt;
The program is very intuitive, doesn't really need a help file.&lt;br /&gt;
&lt;br /&gt;
[[File:LM317.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- '''Ferrite AL.'''&lt;br /&gt;
Just follow the instructions on that App.&lt;br /&gt;
&lt;br /&gt;
[[File:Al_Calc.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oh yea, there's also an '''Electronics database (RATSAK)''' a couple of directories back on the site. I wrote it when I was employed in an electronics manufacturing company to keep track of our R&amp;amp;D stock (different to the normal stock as we didn't have to stock take.) Makes anything really easy to find. Has multiple field search like SMD, 0805,12k0. Also can do partial searches like&lt;br /&gt;
74 will find all components that contain the letters 74 anywhere in the field.&lt;br /&gt;
That program has an installation program as it does use DLL's and the like. Password is admin. Not really meant as a password, just prevents accidental changes. Has a pretty comprehensive help file, and two other programs. One only allows you to look at the database, the other allows you to look and take the components. It will remove that amount of components off the amount of stock you have. &lt;br /&gt;
&lt;br /&gt;
[[File:Main_Screen.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''In the process of doing the LM2576 Adj SMPS''&lt;br /&gt;
&lt;br /&gt;
Enjoy&lt;br /&gt;
&lt;br /&gt;
Dean&lt;br /&gt;
&lt;br /&gt;
[[Category:Miscellaneous stuff]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/MCS_Wiki_Main_entry</id>
		<title>MCS Wiki Main entry</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/MCS_Wiki_Main_entry"/>
				<updated>2013-06-18T07:58:58Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Mcswiki logo.png|center|Mcswiki logo.png]]&lt;br /&gt;
&lt;br /&gt;
= BASCOM Manuals&amp;amp;nbsp;: =&lt;br /&gt;
&lt;br /&gt;
*[http://wiki.mcselec.com/bavr/ BASCOM-AVR manual]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= User projects&amp;amp;nbsp;: =&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 80%&amp;quot; align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;categorytree mode=&amp;quot;pages&amp;quot;&amp;gt;Projects&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
| &amp;lt;br/&amp;gt;&lt;br /&gt;
| &amp;lt;categorytree mode=&amp;quot;pages&amp;quot;&amp;gt;Arduino Ethernet with Bascom-AVR&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 80%&amp;quot; align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;categorytree mode=&amp;quot;pages&amp;quot;&amp;gt;Miscellaneous stuff&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
| &amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Languages}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/Category:Miscellaneous_stuff</id>
		<title>Category:Miscellaneous stuff</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/Category:Miscellaneous_stuff"/>
				<updated>2013-06-18T07:57:21Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;Place for miscellaneous electronics stuff&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Place for miscellaneous electronics stuff&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/7_inch_display_board</id>
		<title>7 inch display board</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/7_inch_display_board"/>
				<updated>2013-04-03T15:36:07Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: /* Using a switch mode regulator */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[7 inch display board#WizFi210|WIZFI210 Wireless network]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[7 inch display board#iTrax300 GPS|GPS ITRAX300 GPS]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;BTM220 Class 1 bluetooth&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Bluegiga WT41 1 kilometer bluetooth&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SCP1000 barometer&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[7 inch display board#DS1338-33 clock|DS1337 clock with battery backup]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;RS232&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Alvidi AVRB Atxmega128A1 module&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;7 inch display&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;FT232RL USB&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
[[File:7inch display5.jpg|thumb|center|450px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;gallery widths=&amp;quot;160px&amp;quot; heights=&amp;quot;160px&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
File:7inch_display1.jpg&lt;br /&gt;
File:7inch_display2.jpg&lt;br /&gt;
File:7inch_display3.jpg&lt;br /&gt;
File:7inch_display4.jpg&lt;br /&gt;
File:7inch_display6.jpg&lt;br /&gt;
File:7inch_display7.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Source code ==&lt;br /&gt;
&lt;br /&gt;
Include a PDF-file for the 7 inch display and some pictures for the Alvidi on-board SD-card&amp;amp;nbsp;:&amp;amp;nbsp;[[Media:Ssd1963 7inch.zip|Download Ssd1963_7inch.zip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Example of main program:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'&lt;br /&gt;
' Copyright Michael Koecher aka six1 8/2010&lt;br /&gt;
' -&amp;gt; http://www.six1.net/ michael@koecher-web.de&lt;br /&gt;
'&lt;br /&gt;
' http://creativecommons.org/licenses/by-sa/3.0/de/&lt;br /&gt;
' Original nur von http://bascom-forum.de&lt;br /&gt;
' Sie dürfen:&lt;br /&gt;
'&lt;br /&gt;
' * das Werk bzw. den Inhalt vervielfältigen, verbreiten und öffentlich zugänglich machen&lt;br /&gt;
'&lt;br /&gt;
' * Abwandlungen und Bearbeitungen des Werkes bzw. Inhaltes anfertigen&lt;br /&gt;
'&lt;br /&gt;
' Zu Den Folgenden Bedingungen:&lt;br /&gt;
'&lt;br /&gt;
' * Namensnennung.&lt;br /&gt;
' Sie müssen den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.&lt;br /&gt;
'&lt;br /&gt;
' * Keine kommerzielle Nutzung.&lt;br /&gt;
' Dieses Werk darf nicht für kommerzielle Zwecke verwendet werden.&lt;br /&gt;
'&lt;br /&gt;
' * Weitergabe unter gleichen Bedingungen.&lt;br /&gt;
' Wenn Sie das lizenzierte Werk bzw. den lizenzierten Inhalt bearbeiten&lt;br /&gt;
' oder in anderer Weise erkennbar als Grundlage für eigenes Schaffen verwenden,&lt;br /&gt;
' dürfen Sie die daraufhin neu entstandenen Werke bzw. Inhalte nur&lt;br /&gt;
' unter Verwendung von Lizenzbedingungen weitergeben, die mit denen&lt;br /&gt;
' dieses Lizenzvertrages identisch oder vergleichbar sind.&lt;br /&gt;
'&lt;br /&gt;
' Wobei gilt:&lt;br /&gt;
'&lt;br /&gt;
' * Verzichtserklärung&lt;br /&gt;
' Jede der vorgenannten Bedingungen kann aufgehoben werden, sofern Sie&lt;br /&gt;
' die ausdrückliche Einwilligung des Rechteinhabers dazu erhalten.&lt;br /&gt;
'&lt;br /&gt;
' * Sonstige Rechte&lt;br /&gt;
' Die Lizenz hat keinerlei Einfluss auf die folgenden Rechte:&lt;br /&gt;
' - Die gesetzlichen Schranken des Urheberrechts und sonstigen&lt;br /&gt;
' Befugnisse zur privaten Nutzung&lt;br /&gt;
' - Das Urheberpersönlichkeitsrecht des Rechteinhabers&lt;br /&gt;
' - Rechte anderer Personen, entweder am Lizenzgegenstand selber oder&lt;br /&gt;
' bezüglich seiner Verwendung, zum Beispiel Persönlichkeitsrechte abgebildeter Personen.&lt;br /&gt;
'&lt;br /&gt;
' Hinweis&lt;br /&gt;
'&lt;br /&gt;
' Im Falle einer Verbreitung müssen Sie anderen alle Lizenzbedingungen&lt;br /&gt;
' mitteilen, die für dieses Werk gelten. Am einfachsten ist es,&lt;br /&gt;
' einen Link auf http://creativecommons.org/licenses/by-sa/3.0/de/ einzubinden.&lt;br /&gt;
'&lt;br /&gt;
'&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'auf Treiber IC SSD1963 geändert 26.11.2011&lt;br /&gt;
'10.09.2012 angepast für Display Typ AT070TN90&lt;br /&gt;
'Hkipnik@aol.com&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;xm128a1def.dat&amp;quot;&lt;br /&gt;
$hwstack = 200&lt;br /&gt;
$swstack = 200&lt;br /&gt;
$framesize = 500&lt;br /&gt;
$crystal = 32000000&lt;br /&gt;
&lt;br /&gt;
Config Osc = Enabled , 32mhzosc = Enabled&lt;br /&gt;
Config Sysclock = 32mhz '--&amp;gt; 32MHz&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
 Config Osc = Disabled , 32mhzosc = Enabled&lt;br /&gt;
 Osc_pllctrl = &amp;amp;B10_0_00100&lt;br /&gt;
 Do&lt;br /&gt;
 Loop Until Osc_status.1 = 1 'Check if RC2MRDY is ready '&lt;br /&gt;
 'enable PLL&lt;br /&gt;
 Set Osc_ctrl.4 'PLL enable&lt;br /&gt;
 'configure the systemclock&lt;br /&gt;
 Config Sysclock = Pll , Prescalea = 1 , Prescalebc = 1_1 'use PLL&lt;br /&gt;
&lt;br /&gt;
 Stop Watchdog&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'Touch Interrupt&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
Const Use_touch = 1 'use Touch = 1&lt;br /&gt;
#if Use_touch = 1&lt;br /&gt;
 Config Pinf.0 = Input 'Set PINF.4 as Input&lt;br /&gt;
 'Because of the activated Pullup the PIN Level is high and there is a falling edge when switch is pressed&lt;br /&gt;
 Config Xpin = Portf.0 , Outpull = Pullup , Sense = Falling 'enable Pull up and reaction on falling edge&lt;br /&gt;
&lt;br /&gt;
 Portf_int0mask = &amp;amp;B0000_0001 'include PIN0 in INT0 Mask&lt;br /&gt;
 Portf_intctrl = &amp;amp;B0000_00_01&lt;br /&gt;
 '^ 'Low Level INT0 Interrupt&lt;br /&gt;
&lt;br /&gt;
 Dim Touch_flag As Bit&lt;br /&gt;
 Touch_flag = 0&lt;br /&gt;
 On Portf_int0 Touch_int&lt;br /&gt;
 Enable Portf_int0 , Lo&lt;br /&gt;
#endif&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 Config Priority = Static , Vector = Application , Lo = Enabled , Med = Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Config Com5 = 57600 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8&lt;br /&gt;
 Open &amp;quot;COM5:&amp;quot; For Binary As #1&lt;br /&gt;
&lt;br /&gt;
 Print #1 , &amp;quot;Graphic 800x480&amp;quot;&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 $include &amp;quot;SSD1963_declarations.inc&amp;quot;&lt;br /&gt;
 $include &amp;quot;SSD1963__sd-card_declarations.inc&amp;quot;&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 Call Sdcard_initialize()&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 'use for Demo&lt;br /&gt;
 Dim Farbe As Word , Countx As Word , Xx1 As Word , Xx2 As Word , Yy1 As Word , Yy2 As Word , Penwidth As Byte , Box_fill As Byte , Show_border As Byte , Radius As Word&lt;br /&gt;
 Dim Help_str As String * 10&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'Start SSD1963&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 Call Ssd1963_init()&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
 Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
'*** MAIN **********************************************************************&lt;br /&gt;
 Do&lt;br /&gt;
 Call Lcd_clear(blue)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Clear area&amp;quot; , 230 , 20 , 1 , Yellow , Blue)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear_area(100 , 100 , 200 , 200 , White)&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear_area(1 , 1 , 200 , 200 , White)&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_text( &amp;quot;BMP 800x480 hallo world&amp;quot; , 100 , 224 , 1 , Gold , Black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;BMP 800x480 hallo world&amp;quot; , 20 , 20 , 2 , Yellow , Red)&lt;br /&gt;
 Wait 1&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;frau5.bmp&amp;quot; , 200 , 0) '24Bit&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;tieger5.bmp&amp;quot; , 1 , 0) '24Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;24Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;tieg8bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;8Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;frau5.bmp&amp;quot; , 200 , 0) '24Bit&lt;br /&gt;
 Wait 1&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;pic18bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;8Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;pic28bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;8Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
&lt;br /&gt;
 Wait 3&lt;br /&gt;
 Call Lcd_negate(0)&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;negate&amp;quot; , 310 , 200 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 3&lt;br /&gt;
 Call Lcd_negate(1)&lt;br /&gt;
&lt;br /&gt;
 Wait 3&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;test8bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Wait 1&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(blue)&lt;br /&gt;
&lt;br /&gt;
#if Use_touch = 1&lt;br /&gt;
 Call Lcd_box(700 , 420 , 790 , 470 , Red , White , 1 , 1)&lt;br /&gt;
 Call Lcd_box(100 , 100 , 105 , 105 , Red , White , 1 , 1)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Touch me&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;next&amp;quot; , 720 , 435 , 2 , Yellow , Red)&lt;br /&gt;
 Do&lt;br /&gt;
 If Touch_flag = 1 Then&lt;br /&gt;
&lt;br /&gt;
 Touchx = 0&lt;br /&gt;
 Touchy = 0&lt;br /&gt;
 Call Lcd_read_touch()&lt;br /&gt;
&lt;br /&gt;
 Select Case Touchx&lt;br /&gt;
 Case 570 To 630 :&lt;br /&gt;
 If Touchy &amp;gt; 5 And Touchy &amp;lt; 65 Then&lt;br /&gt;
 Ende = 1&lt;br /&gt;
 End If&lt;br /&gt;
 End Select&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 If Ende = 1 Then&lt;br /&gt;
 Ende = 0&lt;br /&gt;
 Exit Do&lt;br /&gt;
 End If&lt;br /&gt;
 Touch_flag = 0&lt;br /&gt;
 End If&lt;br /&gt;
&lt;br /&gt;
 Loop&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;LINE&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Xx1 = Rnd(740)&lt;br /&gt;
 Xx2 = Rnd(740)&lt;br /&gt;
 Yy1 = 90 + Rnd(300)&lt;br /&gt;
 Yy2 = 90 + Rnd(300)&lt;br /&gt;
 Penwidth = Rnd(4)&lt;br /&gt;
 Penwidth = Rnd(4)&lt;br /&gt;
 Call Lcd_line(xx1 , Yy1 , Xx2 , Yy2 , Penwidth , Color_array(farbe))&lt;br /&gt;
 Next&lt;br /&gt;
&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;BOX FILL&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = Rnd(740)&lt;br /&gt;
 Xx2 = Rnd(740)&lt;br /&gt;
 Yy1 = 90 + Rnd(300)&lt;br /&gt;
 Yy2 = 90 + Rnd(300)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Box_fill = Rnd(100)&lt;br /&gt;
 If Box_fill &amp;lt; 50 Then Box_fill = 0&lt;br /&gt;
 Show_border = Rnd(100)&lt;br /&gt;
 If Show_border &amp;lt; 70 Then Show_border = 0&lt;br /&gt;
 Call Lcd_box(xx1 , Yy1 , Xx2 , Yy2 , Color_array(farbe) , White , Box_fill , 1)&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;BOX&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = Rnd(740)&lt;br /&gt;
 Xx2 = Rnd(740)&lt;br /&gt;
 Yy1 = 90 + Rnd(300)&lt;br /&gt;
 Yy2 = 90 + Rnd(300)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Call Lcd_box(xx1 , Yy1 , Xx2 , Yy2 , White , Color_array(farbe) , 0 , 1)&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Circle&amp;quot; , 370 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = 40 + Rnd(640)&lt;br /&gt;
 Yy1 = 20 + Rnd(400)&lt;br /&gt;
 Radius = Rnd(50)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Call Lcd_drawcircle(xx1 , Yy1 , Radius , 100 , 2 , Color_array(farbe))&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Circle Fill&amp;quot; , 370 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = 50 + Rnd(540)&lt;br /&gt;
 Yy1 = 80 + Rnd(300)&lt;br /&gt;
 Radius = Rnd(50)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Call Lcd_fill_circle(xx1 , Yy1 , Radius , Color_array(farbe))&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;BMP 320x240&amp;quot; , 330 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;sylt1.bmp&amp;quot; , 240 , 100)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;tieger5.bmp&amp;quot; , 0 , 0)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_setscrollarea(0 , 480 , 0)&lt;br /&gt;
 For Countx = 0 To 479&lt;br /&gt;
 Call Lcd_scroll(countx)&lt;br /&gt;
 Waitms 2&lt;br /&gt;
 Next&lt;br /&gt;
 For Countx = 479 To 0 Step -1&lt;br /&gt;
 Call Lcd_scroll(countx)&lt;br /&gt;
 Waitms 2&lt;br /&gt;
 Next&lt;br /&gt;
&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Loop&lt;br /&gt;
End&lt;br /&gt;
#if Use_touch = 1&lt;br /&gt;
Touch_int:&lt;br /&gt;
 Touch_flag = 1&lt;br /&gt;
 ' Print #1 , &amp;quot;Touch&amp;quot;&lt;br /&gt;
Return&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
 $include &amp;quot;SSD1963__sd-card_routines.inc&amp;quot;&lt;br /&gt;
 $include &amp;quot;SSD1963_functions.inc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 $include &amp;quot;Font12x16.font&amp;quot;&lt;br /&gt;
 $include &amp;quot;font25x32.font&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DS1338-33 clock ==&lt;br /&gt;
&lt;br /&gt;
Put a DS1338-33 clock IC on the board. It is the 3,3 volts 1307.&amp;amp;nbsp;&amp;lt;br/&amp;gt;Got some help to get soft I2c running, the command $forcesofti2c did the trick. And if you study the history.txt files of the Bascom-AVR updates, you will find this command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:7inch DS1338 33.jpg|thumb|center|400px|7inch DS1338 33.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And here the software, with on top a little scan to check if the clock can be found on the soft i2c bus &amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
$regfile = &amp;quot;xm128a1def.dat&amp;quot; &lt;br /&gt;
$hwstack = 200 &lt;br /&gt;
$swstack = 200 &lt;br /&gt;
$framesize = 500 &lt;br /&gt;
$crystal = 32000000 &lt;br /&gt;
&lt;br /&gt;
Config Osc = Enabled , 32mhzosc = Enabled &lt;br /&gt;
Config Sysclock = 32mhz &lt;br /&gt;
&lt;br /&gt;
Config Osc = Disabled , 32mhzosc = Enabled &lt;br /&gt;
Osc_pllctrl = &amp;amp;B10_0_00100 &lt;br /&gt;
Do &lt;br /&gt;
Loop Until Osc_status.1 = 1 'Check if RC2MRDY is ready ' &lt;br /&gt;
'enable PLL &lt;br /&gt;
Set Osc_ctrl.4 'PLL enable &lt;br /&gt;
'configure the systemclock &lt;br /&gt;
Config Sysclock = Pll , Prescalea = 1 , Prescalebc = 1_1 'use PLL &lt;br /&gt;
&lt;br /&gt;
Config Priority = Static , Vector = Application , Lo = Enabled , Med = Enabled &lt;br /&gt;
&lt;br /&gt;
Config Com5 = 57600 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8 &lt;br /&gt;
Open &amp;quot;COM5:&amp;quot; For Binary As #1 &lt;br /&gt;
&lt;br /&gt;
Print #1 , &amp;quot;Start clock&amp;quot; &lt;br /&gt;
&lt;br /&gt;
$forcesofti2c ' with this the software I2C/TWI commands are used when including i2c.lbx &lt;br /&gt;
$lib &amp;quot;i2c.lbx&amp;quot; ' override the normal xmega i2c lib &lt;br /&gt;
&lt;br /&gt;
Dim B As Byte &lt;br /&gt;
Dim Weekday As Byte &lt;br /&gt;
Dim Text As String * 30 &lt;br /&gt;
&lt;br /&gt;
Declare Sub Setdate &lt;br /&gt;
Declare Sub Settime &lt;br /&gt;
Declare Sub Getdatetime &lt;br /&gt;
&lt;br /&gt;
'We use here Virtual port 0 &lt;br /&gt;
Config Vport0 = B ' 'map portB to virtual port0 &lt;br /&gt;
&lt;br /&gt;
Config Scl = Port0 .3 ' Pin to use as SCL (The hardware pin is Pinb.1) &lt;br /&gt;
Config Sda = Port0 .4 ' Pin to use as SDA (The hardware pin is Pinb.0) &lt;br /&gt;
I2cinit ' Bring the Pin's in the proper state &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Print #1 , &amp;quot;Scan start&amp;quot; &lt;br /&gt;
For B = 0 To 254 Step 2 'for all odd addresses &lt;br /&gt;
 I2cstart 'send start &lt;br /&gt;
 I2cwbyte B 'send address &lt;br /&gt;
 If Err = 0 Then 'we got an ack &lt;br /&gt;
 Print #1 , &amp;quot;Slave at : &amp;quot; ; B ; &amp;quot; hex : &amp;quot; ; Hex(b) ; &amp;quot; bin : &amp;quot; ; Bin(b) &lt;br /&gt;
 End If &lt;br /&gt;
 I2cstop 'free bus &lt;br /&gt;
Next &lt;br /&gt;
Print #1 , &amp;quot;End Scan&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Wait 5 ' Bring the Pin's in the proper state &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'DS1338 &lt;br /&gt;
Const Ds1338w = &amp;amp;HD0 ' Adres van de Ds1338 clock &lt;br /&gt;
Const Ds1338r = &amp;amp;HD1 &lt;br /&gt;
&lt;br /&gt;
'Clock &lt;br /&gt;
Config Clock = User &lt;br /&gt;
Config Date = Dmy , Separator = . &lt;br /&gt;
&lt;br /&gt;
$lib &amp;quot;ds1307clock.lib&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'Time$ = &amp;quot;00:07:00&amp;quot; &lt;br /&gt;
'Date$ = &amp;quot;24.02.13&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do &lt;br /&gt;
Call Getdatetime &lt;br /&gt;
Print #1 , _hour &lt;br /&gt;
Print #1 , _min &lt;br /&gt;
Wait 5 &lt;br /&gt;
Loop &lt;br /&gt;
&lt;br /&gt;
End &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'called from ds1307clock.lib &lt;br /&gt;
&lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
' DS1338 Get date-time routine &lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
Getdatetime: &lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338w ' send address &lt;br /&gt;
 I2cwbyte 0 ' start address in 1338 &lt;br /&gt;
&lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338r ' send address &lt;br /&gt;
 I2crbyte _sec , Ack &lt;br /&gt;
 I2crbyte _min , Ack ' MINUTES &lt;br /&gt;
 I2crbyte _hour , Ack ' Hours &lt;br /&gt;
 I2crbyte Weekday , Ack ' Day of Week &lt;br /&gt;
 I2crbyte _day , Ack ' Day of Month &lt;br /&gt;
 I2crbyte _month , Ack ' Month of Year &lt;br /&gt;
 I2crbyte _year , Nack ' Year &lt;br /&gt;
 I2cstop &lt;br /&gt;
 _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour) &lt;br /&gt;
 _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year) &lt;br /&gt;
Return &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
' DS1338 set date routine &lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
Setdate: &lt;br /&gt;
 _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year) &lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338w ' send address &lt;br /&gt;
 I2cwbyte 4 ' starting address in 1338 &lt;br /&gt;
 I2cwbyte _day ' Send Data to SECONDS &lt;br /&gt;
 I2cwbyte _month ' MINUTES &lt;br /&gt;
 I2cwbyte _year ' Hours &lt;br /&gt;
 I2cstop &lt;br /&gt;
Return &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
' DS1338 set time routine &lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
Settime: &lt;br /&gt;
 _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour) &lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338w ' send address &lt;br /&gt;
 I2cwbyte 0 ' starting address in 1338 &lt;br /&gt;
 I2cwbyte _sec ' Send Data to SECONDS &lt;br /&gt;
 I2cwbyte _min ' MINUTES &lt;br /&gt;
 I2cwbyte _hour ' Hours &lt;br /&gt;
 I2cstop &lt;br /&gt;
Return &lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WizFi210&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
=== HW part&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
HKipnik made an example how to make an UDP connection between the 7 inch display board and a Android SmartPhone.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Here some pictures of the WizFi210 with a DIY-antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:Wizfi210 5.jpg|thumb|center|400px|Wizfi210 5.jpg]]&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;250px&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
File:Wizfi210_1.jpg‎|Antenna, 31 mm, with an cap.&lt;br /&gt;
File:Wizfi210_2.jpg‎|Antenna, shrinked &lt;br /&gt;
File:Wizfi210_3.jpg‎|The WIZFI210&lt;br /&gt;
File:Wizfi210_4.jpg‎|The WIZFI210 in detail &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Config part&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
To configure the WIZFI210 with WPA or WEP key, with DHCP or fixed IP and to have it auto-connect a level converter RS232 from PC straight to the WIZFI210&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the WIZSmartScript from the Wiznet site&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;gallery widths=&amp;quot;240px&amp;quot; heights=&amp;quot;240px&amp;quot; align=&amp;quot;center&amp;quot; perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:Wizfi210_1c.jpg‎|The ZIP-file extracted&lt;br /&gt;
File:Wizfi210_2c.jpg‎|Start the WIZSmartScript program, baudrate 115200 &lt;br /&gt;
File:Wizfi210_3c.jpg‎|Find WizFI and Set Command Mode &lt;br /&gt;
File:Wizfi210_4c.jpg‎|Do an Access Point scan and select the Access Point to associate with &lt;br /&gt;
File:Wizfi210_5c.jpg‎|Select the WiFi security. In this case WPA with the Passphrase 'wisclub1'&lt;br /&gt;
File:Wizfi210_6c.jpg‎|Give the module a static IP address (or if you want, give it a DHCP IP address) &lt;br /&gt;
File:Wizfi210_7c.jpg‎|Here you can change the Serial port options&lt;br /&gt;
File:Wizfi210_8c.jpg‎|For this example we will be using UDP traffic to a PC in our network that has the IP address 192.168.0.237 listening to port 5000&lt;br /&gt;
File:Wizfi210_9c.jpg‎|Select an save option. Here you create an startup profile for the WizFi210 module&lt;br /&gt;
File:Wizfi210_10c.jpg‎|You enable auto connect on the next reboot and enable UART messages&lt;br /&gt;
File:Wizfi210_11c.jpg‎|We saved it with the name benshobbycorner and here an example of a script &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
With a not programmed Atxmega128A1. Remove all four jumpers of the Alvidi module (RS232). The MAX3232 on the module will be isolated. Connect the TXD1 and RXD1 from the WIZFI210 to the second RS232 of the Alvidi module. Connect a terminal program, 115200 baud and power the board. If all is connected right you will get the information from the WIZFI210. Start the WizSmartScript and there you go.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:rs232_trick.jpg|thumb|450px|center]]&lt;br /&gt;
&lt;br /&gt;
=== SW part&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
For the next part, Bascom, Android and Wireless, '''all credit goes to HKipnik alias HKBascom alias Heiko'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First some pictures: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;gallery widths=340px heights=340&amp;gt;&lt;br /&gt;
File:Android.png&lt;br /&gt;
File:7inch_android.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this example the WIZFI210 has got IP-address 192.168.0.250&lt;br /&gt;
&lt;br /&gt;
And my Samsung Galaxy Note II has IP-address 192.168.0.237&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Port 5000 is used to send UDP-traffic from the 7 inch display board to the Android SmartPhone.&lt;br /&gt;
&lt;br /&gt;
Port 8000 is used to send UDP-traffic from SmartPhone to 7 inch display.&lt;br /&gt;
&lt;br /&gt;
All wireless. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the software for the 7 inch display board and for the Android Smartphone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first in Bascom-AVR and the second in Basic4Android.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the subdirectory bilder, the images&lt;br /&gt;
&lt;br /&gt;
In the subdirectory wizfi210 a small testprogram and some more info we got from Heiko.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What we did change was the touchscreen routine. We left the old one from Heiko remarked, and put in our own routine.&lt;br /&gt;
&lt;br /&gt;
Seems there are different displays with different touchscreens.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File 1:''' [[Media:7inch_wizfi210.zip|Download 7inch_wizfi210.zip]]&lt;br /&gt;
&lt;br /&gt;
'''File 2:''' [[Media:Test_udp_wizfi210.zip‎|Download Test_udp_wizfi210.zip‎]]&lt;br /&gt;
&lt;br /&gt;
== DHT11 sensor ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DHT11 sensor on location JP1 and from www.AVRprojects.ru we have download software to read the DHT11. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Dht11 7inch.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now we got the time and date from the DS1338-33 and temperature and humidity from a DHT11. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time to make a WordClock. Fontsize 25x32. So on a 800 x 480 pixel display we can make 13 lines of 31 characters. &lt;br /&gt;
&lt;br /&gt;
It is a running clock, the text is refreshed three times a minute so it is very dynamic. &lt;br /&gt;
&lt;br /&gt;
In real the blue is less intensive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Wordclock.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
== iTrax300 GPS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The next step is the iTrax300 GPS module. It is the WIZFI210 or the Itrax300 GPS module, they are on the same serial lines. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;gallery widths=&amp;quot;260px&amp;quot; heights=&amp;quot;260px&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
File:itrax2.jpg&lt;br /&gt;
File:itrax300x.jpg&lt;br /&gt;
File:rs232trick_itrax.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Same trick to connect a PC direct to the iTrax300 module &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:itrax300.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the output of the module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using a switch mode regulator ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a switched mode regulator available which is pin compatible with the 7805 regulator and a similar size. The 7805 regulator is supposed to be roughly 55% efficient where as the switch mode regulator TSR 1-2450 is supposed to be roughly 95% efficient. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Tsr_1-2450_x2.jpg|thumb|center]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Due to the backlight of the display, the 7805 got warm/hot, with the TSR 1-2450 no problem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Easter World Clock ==&lt;br /&gt;
&lt;br /&gt;
'''File 1:''' [[Media:EasterWordClock.zip|Download EasterWordClock.zip]]&lt;br /&gt;
&lt;br /&gt;
== Video&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|3BdFNtNBRlM |500|center|WizFi210 test UDP and Bascom (by HKipnik)}}&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|dpdl6lNeB1Y |500|center|SSD1963 7zoll mit ATxmega128A1 (by HKipnik)}}&lt;br /&gt;
&lt;br /&gt;
== Authors&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&amp;lt;div&amp;gt;Ben&amp;amp;nbsp;Zijlstra and Theo Kleijn designed the board and initial software.&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;HKipnik made various software extensions such as the WIFI.&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/File:EasterWordClock.zip</id>
		<title>File:EasterWordClock.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/File:EasterWordClock.zip"/>
				<updated>2013-04-03T15:34:17Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/7_inch_display_board</id>
		<title>7 inch display board</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/7_inch_display_board"/>
				<updated>2013-04-03T15:32:13Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[7 inch display board#WizFi210|WIZFI210 Wireless network]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[7 inch display board#iTrax300 GPS|GPS ITRAX300 GPS]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;BTM220 Class 1 bluetooth&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Bluegiga WT41 1 kilometer bluetooth&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SCP1000 barometer&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[7 inch display board#DS1338-33 clock|DS1337 clock with battery backup]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;RS232&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Alvidi AVRB Atxmega128A1 module&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;7 inch display&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;FT232RL USB&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
[[File:7inch display5.jpg|thumb|center|450px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;gallery widths=&amp;quot;160px&amp;quot; heights=&amp;quot;160px&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
File:7inch_display1.jpg&lt;br /&gt;
File:7inch_display2.jpg&lt;br /&gt;
File:7inch_display3.jpg&lt;br /&gt;
File:7inch_display4.jpg&lt;br /&gt;
File:7inch_display6.jpg&lt;br /&gt;
File:7inch_display7.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Source code ==&lt;br /&gt;
&lt;br /&gt;
Include a PDF-file for the 7 inch display and some pictures for the Alvidi on-board SD-card&amp;amp;nbsp;:&amp;amp;nbsp;[[Media:Ssd1963 7inch.zip|Download Ssd1963_7inch.zip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Example of main program:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'&lt;br /&gt;
' Copyright Michael Koecher aka six1 8/2010&lt;br /&gt;
' -&amp;gt; http://www.six1.net/ michael@koecher-web.de&lt;br /&gt;
'&lt;br /&gt;
' http://creativecommons.org/licenses/by-sa/3.0/de/&lt;br /&gt;
' Original nur von http://bascom-forum.de&lt;br /&gt;
' Sie dürfen:&lt;br /&gt;
'&lt;br /&gt;
' * das Werk bzw. den Inhalt vervielfältigen, verbreiten und öffentlich zugänglich machen&lt;br /&gt;
'&lt;br /&gt;
' * Abwandlungen und Bearbeitungen des Werkes bzw. Inhaltes anfertigen&lt;br /&gt;
'&lt;br /&gt;
' Zu Den Folgenden Bedingungen:&lt;br /&gt;
'&lt;br /&gt;
' * Namensnennung.&lt;br /&gt;
' Sie müssen den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.&lt;br /&gt;
'&lt;br /&gt;
' * Keine kommerzielle Nutzung.&lt;br /&gt;
' Dieses Werk darf nicht für kommerzielle Zwecke verwendet werden.&lt;br /&gt;
'&lt;br /&gt;
' * Weitergabe unter gleichen Bedingungen.&lt;br /&gt;
' Wenn Sie das lizenzierte Werk bzw. den lizenzierten Inhalt bearbeiten&lt;br /&gt;
' oder in anderer Weise erkennbar als Grundlage für eigenes Schaffen verwenden,&lt;br /&gt;
' dürfen Sie die daraufhin neu entstandenen Werke bzw. Inhalte nur&lt;br /&gt;
' unter Verwendung von Lizenzbedingungen weitergeben, die mit denen&lt;br /&gt;
' dieses Lizenzvertrages identisch oder vergleichbar sind.&lt;br /&gt;
'&lt;br /&gt;
' Wobei gilt:&lt;br /&gt;
'&lt;br /&gt;
' * Verzichtserklärung&lt;br /&gt;
' Jede der vorgenannten Bedingungen kann aufgehoben werden, sofern Sie&lt;br /&gt;
' die ausdrückliche Einwilligung des Rechteinhabers dazu erhalten.&lt;br /&gt;
'&lt;br /&gt;
' * Sonstige Rechte&lt;br /&gt;
' Die Lizenz hat keinerlei Einfluss auf die folgenden Rechte:&lt;br /&gt;
' - Die gesetzlichen Schranken des Urheberrechts und sonstigen&lt;br /&gt;
' Befugnisse zur privaten Nutzung&lt;br /&gt;
' - Das Urheberpersönlichkeitsrecht des Rechteinhabers&lt;br /&gt;
' - Rechte anderer Personen, entweder am Lizenzgegenstand selber oder&lt;br /&gt;
' bezüglich seiner Verwendung, zum Beispiel Persönlichkeitsrechte abgebildeter Personen.&lt;br /&gt;
'&lt;br /&gt;
' Hinweis&lt;br /&gt;
'&lt;br /&gt;
' Im Falle einer Verbreitung müssen Sie anderen alle Lizenzbedingungen&lt;br /&gt;
' mitteilen, die für dieses Werk gelten. Am einfachsten ist es,&lt;br /&gt;
' einen Link auf http://creativecommons.org/licenses/by-sa/3.0/de/ einzubinden.&lt;br /&gt;
'&lt;br /&gt;
'&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'auf Treiber IC SSD1963 geändert 26.11.2011&lt;br /&gt;
'10.09.2012 angepast für Display Typ AT070TN90&lt;br /&gt;
'Hkipnik@aol.com&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;xm128a1def.dat&amp;quot;&lt;br /&gt;
$hwstack = 200&lt;br /&gt;
$swstack = 200&lt;br /&gt;
$framesize = 500&lt;br /&gt;
$crystal = 32000000&lt;br /&gt;
&lt;br /&gt;
Config Osc = Enabled , 32mhzosc = Enabled&lt;br /&gt;
Config Sysclock = 32mhz '--&amp;gt; 32MHz&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
 Config Osc = Disabled , 32mhzosc = Enabled&lt;br /&gt;
 Osc_pllctrl = &amp;amp;B10_0_00100&lt;br /&gt;
 Do&lt;br /&gt;
 Loop Until Osc_status.1 = 1 'Check if RC2MRDY is ready '&lt;br /&gt;
 'enable PLL&lt;br /&gt;
 Set Osc_ctrl.4 'PLL enable&lt;br /&gt;
 'configure the systemclock&lt;br /&gt;
 Config Sysclock = Pll , Prescalea = 1 , Prescalebc = 1_1 'use PLL&lt;br /&gt;
&lt;br /&gt;
 Stop Watchdog&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'Touch Interrupt&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
Const Use_touch = 1 'use Touch = 1&lt;br /&gt;
#if Use_touch = 1&lt;br /&gt;
 Config Pinf.0 = Input 'Set PINF.4 as Input&lt;br /&gt;
 'Because of the activated Pullup the PIN Level is high and there is a falling edge when switch is pressed&lt;br /&gt;
 Config Xpin = Portf.0 , Outpull = Pullup , Sense = Falling 'enable Pull up and reaction on falling edge&lt;br /&gt;
&lt;br /&gt;
 Portf_int0mask = &amp;amp;B0000_0001 'include PIN0 in INT0 Mask&lt;br /&gt;
 Portf_intctrl = &amp;amp;B0000_00_01&lt;br /&gt;
 '^ 'Low Level INT0 Interrupt&lt;br /&gt;
&lt;br /&gt;
 Dim Touch_flag As Bit&lt;br /&gt;
 Touch_flag = 0&lt;br /&gt;
 On Portf_int0 Touch_int&lt;br /&gt;
 Enable Portf_int0 , Lo&lt;br /&gt;
#endif&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 Config Priority = Static , Vector = Application , Lo = Enabled , Med = Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Config Com5 = 57600 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8&lt;br /&gt;
 Open &amp;quot;COM5:&amp;quot; For Binary As #1&lt;br /&gt;
&lt;br /&gt;
 Print #1 , &amp;quot;Graphic 800x480&amp;quot;&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 $include &amp;quot;SSD1963_declarations.inc&amp;quot;&lt;br /&gt;
 $include &amp;quot;SSD1963__sd-card_declarations.inc&amp;quot;&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 Call Sdcard_initialize()&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 'use for Demo&lt;br /&gt;
 Dim Farbe As Word , Countx As Word , Xx1 As Word , Xx2 As Word , Yy1 As Word , Yy2 As Word , Penwidth As Byte , Box_fill As Byte , Show_border As Byte , Radius As Word&lt;br /&gt;
 Dim Help_str As String * 10&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'Start SSD1963&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 Call Ssd1963_init()&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
 Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
'*** MAIN **********************************************************************&lt;br /&gt;
 Do&lt;br /&gt;
 Call Lcd_clear(blue)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Clear area&amp;quot; , 230 , 20 , 1 , Yellow , Blue)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear_area(100 , 100 , 200 , 200 , White)&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear_area(1 , 1 , 200 , 200 , White)&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_text( &amp;quot;BMP 800x480 hallo world&amp;quot; , 100 , 224 , 1 , Gold , Black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;BMP 800x480 hallo world&amp;quot; , 20 , 20 , 2 , Yellow , Red)&lt;br /&gt;
 Wait 1&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;frau5.bmp&amp;quot; , 200 , 0) '24Bit&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;tieger5.bmp&amp;quot; , 1 , 0) '24Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;24Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;tieg8bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;8Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;frau5.bmp&amp;quot; , 200 , 0) '24Bit&lt;br /&gt;
 Wait 1&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;pic18bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;8Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;pic28bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;8Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
&lt;br /&gt;
 Wait 3&lt;br /&gt;
 Call Lcd_negate(0)&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;negate&amp;quot; , 310 , 200 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 3&lt;br /&gt;
 Call Lcd_negate(1)&lt;br /&gt;
&lt;br /&gt;
 Wait 3&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;test8bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Wait 1&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(blue)&lt;br /&gt;
&lt;br /&gt;
#if Use_touch = 1&lt;br /&gt;
 Call Lcd_box(700 , 420 , 790 , 470 , Red , White , 1 , 1)&lt;br /&gt;
 Call Lcd_box(100 , 100 , 105 , 105 , Red , White , 1 , 1)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Touch me&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;next&amp;quot; , 720 , 435 , 2 , Yellow , Red)&lt;br /&gt;
 Do&lt;br /&gt;
 If Touch_flag = 1 Then&lt;br /&gt;
&lt;br /&gt;
 Touchx = 0&lt;br /&gt;
 Touchy = 0&lt;br /&gt;
 Call Lcd_read_touch()&lt;br /&gt;
&lt;br /&gt;
 Select Case Touchx&lt;br /&gt;
 Case 570 To 630 :&lt;br /&gt;
 If Touchy &amp;gt; 5 And Touchy &amp;lt; 65 Then&lt;br /&gt;
 Ende = 1&lt;br /&gt;
 End If&lt;br /&gt;
 End Select&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 If Ende = 1 Then&lt;br /&gt;
 Ende = 0&lt;br /&gt;
 Exit Do&lt;br /&gt;
 End If&lt;br /&gt;
 Touch_flag = 0&lt;br /&gt;
 End If&lt;br /&gt;
&lt;br /&gt;
 Loop&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;LINE&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Xx1 = Rnd(740)&lt;br /&gt;
 Xx2 = Rnd(740)&lt;br /&gt;
 Yy1 = 90 + Rnd(300)&lt;br /&gt;
 Yy2 = 90 + Rnd(300)&lt;br /&gt;
 Penwidth = Rnd(4)&lt;br /&gt;
 Penwidth = Rnd(4)&lt;br /&gt;
 Call Lcd_line(xx1 , Yy1 , Xx2 , Yy2 , Penwidth , Color_array(farbe))&lt;br /&gt;
 Next&lt;br /&gt;
&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;BOX FILL&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = Rnd(740)&lt;br /&gt;
 Xx2 = Rnd(740)&lt;br /&gt;
 Yy1 = 90 + Rnd(300)&lt;br /&gt;
 Yy2 = 90 + Rnd(300)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Box_fill = Rnd(100)&lt;br /&gt;
 If Box_fill &amp;lt; 50 Then Box_fill = 0&lt;br /&gt;
 Show_border = Rnd(100)&lt;br /&gt;
 If Show_border &amp;lt; 70 Then Show_border = 0&lt;br /&gt;
 Call Lcd_box(xx1 , Yy1 , Xx2 , Yy2 , Color_array(farbe) , White , Box_fill , 1)&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;BOX&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = Rnd(740)&lt;br /&gt;
 Xx2 = Rnd(740)&lt;br /&gt;
 Yy1 = 90 + Rnd(300)&lt;br /&gt;
 Yy2 = 90 + Rnd(300)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Call Lcd_box(xx1 , Yy1 , Xx2 , Yy2 , White , Color_array(farbe) , 0 , 1)&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Circle&amp;quot; , 370 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = 40 + Rnd(640)&lt;br /&gt;
 Yy1 = 20 + Rnd(400)&lt;br /&gt;
 Radius = Rnd(50)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Call Lcd_drawcircle(xx1 , Yy1 , Radius , 100 , 2 , Color_array(farbe))&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Circle Fill&amp;quot; , 370 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = 50 + Rnd(540)&lt;br /&gt;
 Yy1 = 80 + Rnd(300)&lt;br /&gt;
 Radius = Rnd(50)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Call Lcd_fill_circle(xx1 , Yy1 , Radius , Color_array(farbe))&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;BMP 320x240&amp;quot; , 330 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;sylt1.bmp&amp;quot; , 240 , 100)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;tieger5.bmp&amp;quot; , 0 , 0)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_setscrollarea(0 , 480 , 0)&lt;br /&gt;
 For Countx = 0 To 479&lt;br /&gt;
 Call Lcd_scroll(countx)&lt;br /&gt;
 Waitms 2&lt;br /&gt;
 Next&lt;br /&gt;
 For Countx = 479 To 0 Step -1&lt;br /&gt;
 Call Lcd_scroll(countx)&lt;br /&gt;
 Waitms 2&lt;br /&gt;
 Next&lt;br /&gt;
&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Loop&lt;br /&gt;
End&lt;br /&gt;
#if Use_touch = 1&lt;br /&gt;
Touch_int:&lt;br /&gt;
 Touch_flag = 1&lt;br /&gt;
 ' Print #1 , &amp;quot;Touch&amp;quot;&lt;br /&gt;
Return&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
 $include &amp;quot;SSD1963__sd-card_routines.inc&amp;quot;&lt;br /&gt;
 $include &amp;quot;SSD1963_functions.inc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 $include &amp;quot;Font12x16.font&amp;quot;&lt;br /&gt;
 $include &amp;quot;font25x32.font&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DS1338-33 clock ==&lt;br /&gt;
&lt;br /&gt;
Put a DS1338-33 clock IC on the board. It is the 3,3 volts 1307.&amp;amp;nbsp;&amp;lt;br/&amp;gt;Got some help to get soft I2c running, the command $forcesofti2c did the trick. And if you study the history.txt files of the Bascom-AVR updates, you will find this command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:7inch DS1338 33.jpg|thumb|center|400px|7inch DS1338 33.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And here the software, with on top a little scan to check if the clock can be found on the soft i2c bus &amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
$regfile = &amp;quot;xm128a1def.dat&amp;quot; &lt;br /&gt;
$hwstack = 200 &lt;br /&gt;
$swstack = 200 &lt;br /&gt;
$framesize = 500 &lt;br /&gt;
$crystal = 32000000 &lt;br /&gt;
&lt;br /&gt;
Config Osc = Enabled , 32mhzosc = Enabled &lt;br /&gt;
Config Sysclock = 32mhz &lt;br /&gt;
&lt;br /&gt;
Config Osc = Disabled , 32mhzosc = Enabled &lt;br /&gt;
Osc_pllctrl = &amp;amp;B10_0_00100 &lt;br /&gt;
Do &lt;br /&gt;
Loop Until Osc_status.1 = 1 'Check if RC2MRDY is ready ' &lt;br /&gt;
'enable PLL &lt;br /&gt;
Set Osc_ctrl.4 'PLL enable &lt;br /&gt;
'configure the systemclock &lt;br /&gt;
Config Sysclock = Pll , Prescalea = 1 , Prescalebc = 1_1 'use PLL &lt;br /&gt;
&lt;br /&gt;
Config Priority = Static , Vector = Application , Lo = Enabled , Med = Enabled &lt;br /&gt;
&lt;br /&gt;
Config Com5 = 57600 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8 &lt;br /&gt;
Open &amp;quot;COM5:&amp;quot; For Binary As #1 &lt;br /&gt;
&lt;br /&gt;
Print #1 , &amp;quot;Start clock&amp;quot; &lt;br /&gt;
&lt;br /&gt;
$forcesofti2c ' with this the software I2C/TWI commands are used when including i2c.lbx &lt;br /&gt;
$lib &amp;quot;i2c.lbx&amp;quot; ' override the normal xmega i2c lib &lt;br /&gt;
&lt;br /&gt;
Dim B As Byte &lt;br /&gt;
Dim Weekday As Byte &lt;br /&gt;
Dim Text As String * 30 &lt;br /&gt;
&lt;br /&gt;
Declare Sub Setdate &lt;br /&gt;
Declare Sub Settime &lt;br /&gt;
Declare Sub Getdatetime &lt;br /&gt;
&lt;br /&gt;
'We use here Virtual port 0 &lt;br /&gt;
Config Vport0 = B ' 'map portB to virtual port0 &lt;br /&gt;
&lt;br /&gt;
Config Scl = Port0 .3 ' Pin to use as SCL (The hardware pin is Pinb.1) &lt;br /&gt;
Config Sda = Port0 .4 ' Pin to use as SDA (The hardware pin is Pinb.0) &lt;br /&gt;
I2cinit ' Bring the Pin's in the proper state &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Print #1 , &amp;quot;Scan start&amp;quot; &lt;br /&gt;
For B = 0 To 254 Step 2 'for all odd addresses &lt;br /&gt;
 I2cstart 'send start &lt;br /&gt;
 I2cwbyte B 'send address &lt;br /&gt;
 If Err = 0 Then 'we got an ack &lt;br /&gt;
 Print #1 , &amp;quot;Slave at : &amp;quot; ; B ; &amp;quot; hex : &amp;quot; ; Hex(b) ; &amp;quot; bin : &amp;quot; ; Bin(b) &lt;br /&gt;
 End If &lt;br /&gt;
 I2cstop 'free bus &lt;br /&gt;
Next &lt;br /&gt;
Print #1 , &amp;quot;End Scan&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Wait 5 ' Bring the Pin's in the proper state &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'DS1338 &lt;br /&gt;
Const Ds1338w = &amp;amp;HD0 ' Adres van de Ds1338 clock &lt;br /&gt;
Const Ds1338r = &amp;amp;HD1 &lt;br /&gt;
&lt;br /&gt;
'Clock &lt;br /&gt;
Config Clock = User &lt;br /&gt;
Config Date = Dmy , Separator = . &lt;br /&gt;
&lt;br /&gt;
$lib &amp;quot;ds1307clock.lib&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'Time$ = &amp;quot;00:07:00&amp;quot; &lt;br /&gt;
'Date$ = &amp;quot;24.02.13&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do &lt;br /&gt;
Call Getdatetime &lt;br /&gt;
Print #1 , _hour &lt;br /&gt;
Print #1 , _min &lt;br /&gt;
Wait 5 &lt;br /&gt;
Loop &lt;br /&gt;
&lt;br /&gt;
End &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'called from ds1307clock.lib &lt;br /&gt;
&lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
' DS1338 Get date-time routine &lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
Getdatetime: &lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338w ' send address &lt;br /&gt;
 I2cwbyte 0 ' start address in 1338 &lt;br /&gt;
&lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338r ' send address &lt;br /&gt;
 I2crbyte _sec , Ack &lt;br /&gt;
 I2crbyte _min , Ack ' MINUTES &lt;br /&gt;
 I2crbyte _hour , Ack ' Hours &lt;br /&gt;
 I2crbyte Weekday , Ack ' Day of Week &lt;br /&gt;
 I2crbyte _day , Ack ' Day of Month &lt;br /&gt;
 I2crbyte _month , Ack ' Month of Year &lt;br /&gt;
 I2crbyte _year , Nack ' Year &lt;br /&gt;
 I2cstop &lt;br /&gt;
 _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour) &lt;br /&gt;
 _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year) &lt;br /&gt;
Return &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
' DS1338 set date routine &lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
Setdate: &lt;br /&gt;
 _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year) &lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338w ' send address &lt;br /&gt;
 I2cwbyte 4 ' starting address in 1338 &lt;br /&gt;
 I2cwbyte _day ' Send Data to SECONDS &lt;br /&gt;
 I2cwbyte _month ' MINUTES &lt;br /&gt;
 I2cwbyte _year ' Hours &lt;br /&gt;
 I2cstop &lt;br /&gt;
Return &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
' DS1338 set time routine &lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
Settime: &lt;br /&gt;
 _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour) &lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338w ' send address &lt;br /&gt;
 I2cwbyte 0 ' starting address in 1338 &lt;br /&gt;
 I2cwbyte _sec ' Send Data to SECONDS &lt;br /&gt;
 I2cwbyte _min ' MINUTES &lt;br /&gt;
 I2cwbyte _hour ' Hours &lt;br /&gt;
 I2cstop &lt;br /&gt;
Return &lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WizFi210&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
=== HW part&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
HKipnik made an example how to make an UDP connection between the 7 inch display board and a Android SmartPhone.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Here some pictures of the WizFi210 with a DIY-antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:Wizfi210 5.jpg|thumb|center|400px|Wizfi210 5.jpg]]&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;250px&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
File:Wizfi210_1.jpg‎|Antenna, 31 mm, with an cap.&lt;br /&gt;
File:Wizfi210_2.jpg‎|Antenna, shrinked &lt;br /&gt;
File:Wizfi210_3.jpg‎|The WIZFI210&lt;br /&gt;
File:Wizfi210_4.jpg‎|The WIZFI210 in detail &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Config part&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
To configure the WIZFI210 with WPA or WEP key, with DHCP or fixed IP and to have it auto-connect a level converter RS232 from PC straight to the WIZFI210&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the WIZSmartScript from the Wiznet site&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;gallery widths=&amp;quot;240px&amp;quot; heights=&amp;quot;240px&amp;quot; align=&amp;quot;center&amp;quot; perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:Wizfi210_1c.jpg‎|The ZIP-file extracted&lt;br /&gt;
File:Wizfi210_2c.jpg‎|Start the WIZSmartScript program, baudrate 115200 &lt;br /&gt;
File:Wizfi210_3c.jpg‎|Find WizFI and Set Command Mode &lt;br /&gt;
File:Wizfi210_4c.jpg‎|Do an Access Point scan and select the Access Point to associate with &lt;br /&gt;
File:Wizfi210_5c.jpg‎|Select the WiFi security. In this case WPA with the Passphrase 'wisclub1'&lt;br /&gt;
File:Wizfi210_6c.jpg‎|Give the module a static IP address (or if you want, give it a DHCP IP address) &lt;br /&gt;
File:Wizfi210_7c.jpg‎|Here you can change the Serial port options&lt;br /&gt;
File:Wizfi210_8c.jpg‎|For this example we will be using UDP traffic to a PC in our network that has the IP address 192.168.0.237 listening to port 5000&lt;br /&gt;
File:Wizfi210_9c.jpg‎|Select an save option. Here you create an startup profile for the WizFi210 module&lt;br /&gt;
File:Wizfi210_10c.jpg‎|You enable auto connect on the next reboot and enable UART messages&lt;br /&gt;
File:Wizfi210_11c.jpg‎|We saved it with the name benshobbycorner and here an example of a script &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
With a not programmed Atxmega128A1. Remove all four jumpers of the Alvidi module (RS232). The MAX3232 on the module will be isolated. Connect the TXD1 and RXD1 from the WIZFI210 to the second RS232 of the Alvidi module. Connect a terminal program, 115200 baud and power the board. If all is connected right you will get the information from the WIZFI210. Start the WizSmartScript and there you go.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:rs232_trick.jpg|thumb|450px|center]]&lt;br /&gt;
&lt;br /&gt;
=== SW part&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
For the next part, Bascom, Android and Wireless, '''all credit goes to HKipnik alias HKBascom alias Heiko'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First some pictures: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;gallery widths=340px heights=340&amp;gt;&lt;br /&gt;
File:Android.png&lt;br /&gt;
File:7inch_android.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this example the WIZFI210 has got IP-address 192.168.0.250&lt;br /&gt;
&lt;br /&gt;
And my Samsung Galaxy Note II has IP-address 192.168.0.237&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Port 5000 is used to send UDP-traffic from the 7 inch display board to the Android SmartPhone.&lt;br /&gt;
&lt;br /&gt;
Port 8000 is used to send UDP-traffic from SmartPhone to 7 inch display.&lt;br /&gt;
&lt;br /&gt;
All wireless. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the software for the 7 inch display board and for the Android Smartphone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first in Bascom-AVR and the second in Basic4Android.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the subdirectory bilder, the images&lt;br /&gt;
&lt;br /&gt;
In the subdirectory wizfi210 a small testprogram and some more info we got from Heiko.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What we did change was the touchscreen routine. We left the old one from Heiko remarked, and put in our own routine.&lt;br /&gt;
&lt;br /&gt;
Seems there are different displays with different touchscreens.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File 1:''' [[Media:7inch_wizfi210.zip|Download 7inch_wizfi210.zip]]&lt;br /&gt;
&lt;br /&gt;
'''File 2:''' [[Media:Test_udp_wizfi210.zip‎|Download Test_udp_wizfi210.zip‎]]&lt;br /&gt;
&lt;br /&gt;
== DHT11 sensor ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DHT11 sensor on location JP1 and from www.AVRprojects.ru we have download software to read the DHT11. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Dht11 7inch.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now we got the time and date from the DS1338-33 and temperature and humidity from a DHT11. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time to make a WordClock. Fontsize 25x32. So on a 800 x 480 pixel display we can make 13 lines of 31 characters. &lt;br /&gt;
&lt;br /&gt;
It is a running clock, the text is refreshed three times a minute so it is very dynamic. &lt;br /&gt;
&lt;br /&gt;
In real the blue is less intensive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Wordclock.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
== iTrax300 GPS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The next step is the iTrax300 GPS module. It is the WIZFI210 or the Itrax300 GPS module, they are on the same serial lines. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;gallery widths=&amp;quot;260px&amp;quot; heights=&amp;quot;260px&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
File:itrax2.jpg&lt;br /&gt;
File:itrax300x.jpg&lt;br /&gt;
File:rs232trick_itrax.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Same trick to connect a PC direct to the iTrax300 module &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:itrax300.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the output of the module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using a switch mode regulator ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a switched mode regulator available which is pin compatible with the 7805 regulator and a similar size. The 7805 regulator is supposed to be roughly 55% efficient where as the switch mode regulator TSR 1-2450 is supposed to be roughly 95% efficient. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Tsr_1-2450_x2.jpg|thumb|center]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Due to the backlight of the display, the 7805 got warm/hot, with the TSR 1-2450 no problem.&lt;br /&gt;
&lt;br /&gt;
== Video&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|3BdFNtNBRlM |500|center|WizFi210 test UDP and Bascom (by HKipnik)}}&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|dpdl6lNeB1Y |500|center|SSD1963 7zoll mit ATxmega128A1 (by HKipnik)}}&lt;br /&gt;
&lt;br /&gt;
== Authors&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&amp;lt;div&amp;gt;Ben&amp;amp;nbsp;Zijlstra and Theo Kleijn designed the board and initial software.&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;HKipnik made various software extensions such as the WIFI.&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/7_inch_display_board</id>
		<title>7 inch display board</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/7_inch_display_board"/>
				<updated>2013-04-03T15:31:31Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[7 inch display board#WizFi210|WIZFI210 Wireless network]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[7 inch display board#iTrax300|GPS ITRAX300 GPS]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;BTM220 Class 1 bluetooth&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Bluegiga WT41 1 kilometer bluetooth&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SCP1000 barometer&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[7 inch display board#DS1338-33 clock|DS1337 clock with battery backup]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;RS232&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Alvidi AVRB Atxmega128A1 module&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;7 inch display&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;FT232RL USB&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
[[File:7inch display5.jpg|thumb|center|450px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;gallery widths=&amp;quot;160px&amp;quot; heights=&amp;quot;160px&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
File:7inch_display1.jpg&lt;br /&gt;
File:7inch_display2.jpg&lt;br /&gt;
File:7inch_display3.jpg&lt;br /&gt;
File:7inch_display4.jpg&lt;br /&gt;
File:7inch_display6.jpg&lt;br /&gt;
File:7inch_display7.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Source code ==&lt;br /&gt;
&lt;br /&gt;
Include a PDF-file for the 7 inch display and some pictures for the Alvidi on-board SD-card&amp;amp;nbsp;:&amp;amp;nbsp;[[Media:Ssd1963 7inch.zip|Download Ssd1963_7inch.zip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Example of main program:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'&lt;br /&gt;
' Copyright Michael Koecher aka six1 8/2010&lt;br /&gt;
' -&amp;gt; http://www.six1.net/ michael@koecher-web.de&lt;br /&gt;
'&lt;br /&gt;
' http://creativecommons.org/licenses/by-sa/3.0/de/&lt;br /&gt;
' Original nur von http://bascom-forum.de&lt;br /&gt;
' Sie dürfen:&lt;br /&gt;
'&lt;br /&gt;
' * das Werk bzw. den Inhalt vervielfältigen, verbreiten und öffentlich zugänglich machen&lt;br /&gt;
'&lt;br /&gt;
' * Abwandlungen und Bearbeitungen des Werkes bzw. Inhaltes anfertigen&lt;br /&gt;
'&lt;br /&gt;
' Zu Den Folgenden Bedingungen:&lt;br /&gt;
'&lt;br /&gt;
' * Namensnennung.&lt;br /&gt;
' Sie müssen den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.&lt;br /&gt;
'&lt;br /&gt;
' * Keine kommerzielle Nutzung.&lt;br /&gt;
' Dieses Werk darf nicht für kommerzielle Zwecke verwendet werden.&lt;br /&gt;
'&lt;br /&gt;
' * Weitergabe unter gleichen Bedingungen.&lt;br /&gt;
' Wenn Sie das lizenzierte Werk bzw. den lizenzierten Inhalt bearbeiten&lt;br /&gt;
' oder in anderer Weise erkennbar als Grundlage für eigenes Schaffen verwenden,&lt;br /&gt;
' dürfen Sie die daraufhin neu entstandenen Werke bzw. Inhalte nur&lt;br /&gt;
' unter Verwendung von Lizenzbedingungen weitergeben, die mit denen&lt;br /&gt;
' dieses Lizenzvertrages identisch oder vergleichbar sind.&lt;br /&gt;
'&lt;br /&gt;
' Wobei gilt:&lt;br /&gt;
'&lt;br /&gt;
' * Verzichtserklärung&lt;br /&gt;
' Jede der vorgenannten Bedingungen kann aufgehoben werden, sofern Sie&lt;br /&gt;
' die ausdrückliche Einwilligung des Rechteinhabers dazu erhalten.&lt;br /&gt;
'&lt;br /&gt;
' * Sonstige Rechte&lt;br /&gt;
' Die Lizenz hat keinerlei Einfluss auf die folgenden Rechte:&lt;br /&gt;
' - Die gesetzlichen Schranken des Urheberrechts und sonstigen&lt;br /&gt;
' Befugnisse zur privaten Nutzung&lt;br /&gt;
' - Das Urheberpersönlichkeitsrecht des Rechteinhabers&lt;br /&gt;
' - Rechte anderer Personen, entweder am Lizenzgegenstand selber oder&lt;br /&gt;
' bezüglich seiner Verwendung, zum Beispiel Persönlichkeitsrechte abgebildeter Personen.&lt;br /&gt;
'&lt;br /&gt;
' Hinweis&lt;br /&gt;
'&lt;br /&gt;
' Im Falle einer Verbreitung müssen Sie anderen alle Lizenzbedingungen&lt;br /&gt;
' mitteilen, die für dieses Werk gelten. Am einfachsten ist es,&lt;br /&gt;
' einen Link auf http://creativecommons.org/licenses/by-sa/3.0/de/ einzubinden.&lt;br /&gt;
'&lt;br /&gt;
'&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'auf Treiber IC SSD1963 geändert 26.11.2011&lt;br /&gt;
'10.09.2012 angepast für Display Typ AT070TN90&lt;br /&gt;
'Hkipnik@aol.com&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;xm128a1def.dat&amp;quot;&lt;br /&gt;
$hwstack = 200&lt;br /&gt;
$swstack = 200&lt;br /&gt;
$framesize = 500&lt;br /&gt;
$crystal = 32000000&lt;br /&gt;
&lt;br /&gt;
Config Osc = Enabled , 32mhzosc = Enabled&lt;br /&gt;
Config Sysclock = 32mhz '--&amp;gt; 32MHz&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
 Config Osc = Disabled , 32mhzosc = Enabled&lt;br /&gt;
 Osc_pllctrl = &amp;amp;B10_0_00100&lt;br /&gt;
 Do&lt;br /&gt;
 Loop Until Osc_status.1 = 1 'Check if RC2MRDY is ready '&lt;br /&gt;
 'enable PLL&lt;br /&gt;
 Set Osc_ctrl.4 'PLL enable&lt;br /&gt;
 'configure the systemclock&lt;br /&gt;
 Config Sysclock = Pll , Prescalea = 1 , Prescalebc = 1_1 'use PLL&lt;br /&gt;
&lt;br /&gt;
 Stop Watchdog&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'Touch Interrupt&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
Const Use_touch = 1 'use Touch = 1&lt;br /&gt;
#if Use_touch = 1&lt;br /&gt;
 Config Pinf.0 = Input 'Set PINF.4 as Input&lt;br /&gt;
 'Because of the activated Pullup the PIN Level is high and there is a falling edge when switch is pressed&lt;br /&gt;
 Config Xpin = Portf.0 , Outpull = Pullup , Sense = Falling 'enable Pull up and reaction on falling edge&lt;br /&gt;
&lt;br /&gt;
 Portf_int0mask = &amp;amp;B0000_0001 'include PIN0 in INT0 Mask&lt;br /&gt;
 Portf_intctrl = &amp;amp;B0000_00_01&lt;br /&gt;
 '^ 'Low Level INT0 Interrupt&lt;br /&gt;
&lt;br /&gt;
 Dim Touch_flag As Bit&lt;br /&gt;
 Touch_flag = 0&lt;br /&gt;
 On Portf_int0 Touch_int&lt;br /&gt;
 Enable Portf_int0 , Lo&lt;br /&gt;
#endif&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 Config Priority = Static , Vector = Application , Lo = Enabled , Med = Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Config Com5 = 57600 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8&lt;br /&gt;
 Open &amp;quot;COM5:&amp;quot; For Binary As #1&lt;br /&gt;
&lt;br /&gt;
 Print #1 , &amp;quot;Graphic 800x480&amp;quot;&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 $include &amp;quot;SSD1963_declarations.inc&amp;quot;&lt;br /&gt;
 $include &amp;quot;SSD1963__sd-card_declarations.inc&amp;quot;&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 Call Sdcard_initialize()&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 'use for Demo&lt;br /&gt;
 Dim Farbe As Word , Countx As Word , Xx1 As Word , Xx2 As Word , Yy1 As Word , Yy2 As Word , Penwidth As Byte , Box_fill As Byte , Show_border As Byte , Radius As Word&lt;br /&gt;
 Dim Help_str As String * 10&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'Start SSD1963&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 Call Ssd1963_init()&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
 Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
'*** MAIN **********************************************************************&lt;br /&gt;
 Do&lt;br /&gt;
 Call Lcd_clear(blue)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Clear area&amp;quot; , 230 , 20 , 1 , Yellow , Blue)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear_area(100 , 100 , 200 , 200 , White)&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear_area(1 , 1 , 200 , 200 , White)&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_text( &amp;quot;BMP 800x480 hallo world&amp;quot; , 100 , 224 , 1 , Gold , Black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;BMP 800x480 hallo world&amp;quot; , 20 , 20 , 2 , Yellow , Red)&lt;br /&gt;
 Wait 1&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;frau5.bmp&amp;quot; , 200 , 0) '24Bit&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;tieger5.bmp&amp;quot; , 1 , 0) '24Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;24Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;tieg8bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;8Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;frau5.bmp&amp;quot; , 200 , 0) '24Bit&lt;br /&gt;
 Wait 1&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;pic18bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;8Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;pic28bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;8Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
&lt;br /&gt;
 Wait 3&lt;br /&gt;
 Call Lcd_negate(0)&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;negate&amp;quot; , 310 , 200 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 3&lt;br /&gt;
 Call Lcd_negate(1)&lt;br /&gt;
&lt;br /&gt;
 Wait 3&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;test8bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Wait 1&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(blue)&lt;br /&gt;
&lt;br /&gt;
#if Use_touch = 1&lt;br /&gt;
 Call Lcd_box(700 , 420 , 790 , 470 , Red , White , 1 , 1)&lt;br /&gt;
 Call Lcd_box(100 , 100 , 105 , 105 , Red , White , 1 , 1)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Touch me&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;next&amp;quot; , 720 , 435 , 2 , Yellow , Red)&lt;br /&gt;
 Do&lt;br /&gt;
 If Touch_flag = 1 Then&lt;br /&gt;
&lt;br /&gt;
 Touchx = 0&lt;br /&gt;
 Touchy = 0&lt;br /&gt;
 Call Lcd_read_touch()&lt;br /&gt;
&lt;br /&gt;
 Select Case Touchx&lt;br /&gt;
 Case 570 To 630 :&lt;br /&gt;
 If Touchy &amp;gt; 5 And Touchy &amp;lt; 65 Then&lt;br /&gt;
 Ende = 1&lt;br /&gt;
 End If&lt;br /&gt;
 End Select&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 If Ende = 1 Then&lt;br /&gt;
 Ende = 0&lt;br /&gt;
 Exit Do&lt;br /&gt;
 End If&lt;br /&gt;
 Touch_flag = 0&lt;br /&gt;
 End If&lt;br /&gt;
&lt;br /&gt;
 Loop&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;LINE&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Xx1 = Rnd(740)&lt;br /&gt;
 Xx2 = Rnd(740)&lt;br /&gt;
 Yy1 = 90 + Rnd(300)&lt;br /&gt;
 Yy2 = 90 + Rnd(300)&lt;br /&gt;
 Penwidth = Rnd(4)&lt;br /&gt;
 Penwidth = Rnd(4)&lt;br /&gt;
 Call Lcd_line(xx1 , Yy1 , Xx2 , Yy2 , Penwidth , Color_array(farbe))&lt;br /&gt;
 Next&lt;br /&gt;
&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;BOX FILL&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = Rnd(740)&lt;br /&gt;
 Xx2 = Rnd(740)&lt;br /&gt;
 Yy1 = 90 + Rnd(300)&lt;br /&gt;
 Yy2 = 90 + Rnd(300)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Box_fill = Rnd(100)&lt;br /&gt;
 If Box_fill &amp;lt; 50 Then Box_fill = 0&lt;br /&gt;
 Show_border = Rnd(100)&lt;br /&gt;
 If Show_border &amp;lt; 70 Then Show_border = 0&lt;br /&gt;
 Call Lcd_box(xx1 , Yy1 , Xx2 , Yy2 , Color_array(farbe) , White , Box_fill , 1)&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;BOX&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = Rnd(740)&lt;br /&gt;
 Xx2 = Rnd(740)&lt;br /&gt;
 Yy1 = 90 + Rnd(300)&lt;br /&gt;
 Yy2 = 90 + Rnd(300)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Call Lcd_box(xx1 , Yy1 , Xx2 , Yy2 , White , Color_array(farbe) , 0 , 1)&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Circle&amp;quot; , 370 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = 40 + Rnd(640)&lt;br /&gt;
 Yy1 = 20 + Rnd(400)&lt;br /&gt;
 Radius = Rnd(50)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Call Lcd_drawcircle(xx1 , Yy1 , Radius , 100 , 2 , Color_array(farbe))&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Circle Fill&amp;quot; , 370 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = 50 + Rnd(540)&lt;br /&gt;
 Yy1 = 80 + Rnd(300)&lt;br /&gt;
 Radius = Rnd(50)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Call Lcd_fill_circle(xx1 , Yy1 , Radius , Color_array(farbe))&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;BMP 320x240&amp;quot; , 330 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;sylt1.bmp&amp;quot; , 240 , 100)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;tieger5.bmp&amp;quot; , 0 , 0)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_setscrollarea(0 , 480 , 0)&lt;br /&gt;
 For Countx = 0 To 479&lt;br /&gt;
 Call Lcd_scroll(countx)&lt;br /&gt;
 Waitms 2&lt;br /&gt;
 Next&lt;br /&gt;
 For Countx = 479 To 0 Step -1&lt;br /&gt;
 Call Lcd_scroll(countx)&lt;br /&gt;
 Waitms 2&lt;br /&gt;
 Next&lt;br /&gt;
&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Loop&lt;br /&gt;
End&lt;br /&gt;
#if Use_touch = 1&lt;br /&gt;
Touch_int:&lt;br /&gt;
 Touch_flag = 1&lt;br /&gt;
 ' Print #1 , &amp;quot;Touch&amp;quot;&lt;br /&gt;
Return&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
 $include &amp;quot;SSD1963__sd-card_routines.inc&amp;quot;&lt;br /&gt;
 $include &amp;quot;SSD1963_functions.inc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 $include &amp;quot;Font12x16.font&amp;quot;&lt;br /&gt;
 $include &amp;quot;font25x32.font&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DS1338-33 clock ==&lt;br /&gt;
&lt;br /&gt;
Put a DS1338-33 clock IC on the board. It is the 3,3 volts 1307.&amp;amp;nbsp;&amp;lt;br/&amp;gt;Got some help to get soft I2c running, the command $forcesofti2c did the trick. And if you study the history.txt files of the Bascom-AVR updates, you will find this command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:7inch DS1338 33.jpg|thumb|center|400px|7inch DS1338 33.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And here the software, with on top a little scan to check if the clock can be found on the soft i2c bus &amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
$regfile = &amp;quot;xm128a1def.dat&amp;quot; &lt;br /&gt;
$hwstack = 200 &lt;br /&gt;
$swstack = 200 &lt;br /&gt;
$framesize = 500 &lt;br /&gt;
$crystal = 32000000 &lt;br /&gt;
&lt;br /&gt;
Config Osc = Enabled , 32mhzosc = Enabled &lt;br /&gt;
Config Sysclock = 32mhz &lt;br /&gt;
&lt;br /&gt;
Config Osc = Disabled , 32mhzosc = Enabled &lt;br /&gt;
Osc_pllctrl = &amp;amp;B10_0_00100 &lt;br /&gt;
Do &lt;br /&gt;
Loop Until Osc_status.1 = 1 'Check if RC2MRDY is ready ' &lt;br /&gt;
'enable PLL &lt;br /&gt;
Set Osc_ctrl.4 'PLL enable &lt;br /&gt;
'configure the systemclock &lt;br /&gt;
Config Sysclock = Pll , Prescalea = 1 , Prescalebc = 1_1 'use PLL &lt;br /&gt;
&lt;br /&gt;
Config Priority = Static , Vector = Application , Lo = Enabled , Med = Enabled &lt;br /&gt;
&lt;br /&gt;
Config Com5 = 57600 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8 &lt;br /&gt;
Open &amp;quot;COM5:&amp;quot; For Binary As #1 &lt;br /&gt;
&lt;br /&gt;
Print #1 , &amp;quot;Start clock&amp;quot; &lt;br /&gt;
&lt;br /&gt;
$forcesofti2c ' with this the software I2C/TWI commands are used when including i2c.lbx &lt;br /&gt;
$lib &amp;quot;i2c.lbx&amp;quot; ' override the normal xmega i2c lib &lt;br /&gt;
&lt;br /&gt;
Dim B As Byte &lt;br /&gt;
Dim Weekday As Byte &lt;br /&gt;
Dim Text As String * 30 &lt;br /&gt;
&lt;br /&gt;
Declare Sub Setdate &lt;br /&gt;
Declare Sub Settime &lt;br /&gt;
Declare Sub Getdatetime &lt;br /&gt;
&lt;br /&gt;
'We use here Virtual port 0 &lt;br /&gt;
Config Vport0 = B ' 'map portB to virtual port0 &lt;br /&gt;
&lt;br /&gt;
Config Scl = Port0 .3 ' Pin to use as SCL (The hardware pin is Pinb.1) &lt;br /&gt;
Config Sda = Port0 .4 ' Pin to use as SDA (The hardware pin is Pinb.0) &lt;br /&gt;
I2cinit ' Bring the Pin's in the proper state &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Print #1 , &amp;quot;Scan start&amp;quot; &lt;br /&gt;
For B = 0 To 254 Step 2 'for all odd addresses &lt;br /&gt;
 I2cstart 'send start &lt;br /&gt;
 I2cwbyte B 'send address &lt;br /&gt;
 If Err = 0 Then 'we got an ack &lt;br /&gt;
 Print #1 , &amp;quot;Slave at : &amp;quot; ; B ; &amp;quot; hex : &amp;quot; ; Hex(b) ; &amp;quot; bin : &amp;quot; ; Bin(b) &lt;br /&gt;
 End If &lt;br /&gt;
 I2cstop 'free bus &lt;br /&gt;
Next &lt;br /&gt;
Print #1 , &amp;quot;End Scan&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Wait 5 ' Bring the Pin's in the proper state &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'DS1338 &lt;br /&gt;
Const Ds1338w = &amp;amp;HD0 ' Adres van de Ds1338 clock &lt;br /&gt;
Const Ds1338r = &amp;amp;HD1 &lt;br /&gt;
&lt;br /&gt;
'Clock &lt;br /&gt;
Config Clock = User &lt;br /&gt;
Config Date = Dmy , Separator = . &lt;br /&gt;
&lt;br /&gt;
$lib &amp;quot;ds1307clock.lib&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'Time$ = &amp;quot;00:07:00&amp;quot; &lt;br /&gt;
'Date$ = &amp;quot;24.02.13&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do &lt;br /&gt;
Call Getdatetime &lt;br /&gt;
Print #1 , _hour &lt;br /&gt;
Print #1 , _min &lt;br /&gt;
Wait 5 &lt;br /&gt;
Loop &lt;br /&gt;
&lt;br /&gt;
End &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'called from ds1307clock.lib &lt;br /&gt;
&lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
' DS1338 Get date-time routine &lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
Getdatetime: &lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338w ' send address &lt;br /&gt;
 I2cwbyte 0 ' start address in 1338 &lt;br /&gt;
&lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338r ' send address &lt;br /&gt;
 I2crbyte _sec , Ack &lt;br /&gt;
 I2crbyte _min , Ack ' MINUTES &lt;br /&gt;
 I2crbyte _hour , Ack ' Hours &lt;br /&gt;
 I2crbyte Weekday , Ack ' Day of Week &lt;br /&gt;
 I2crbyte _day , Ack ' Day of Month &lt;br /&gt;
 I2crbyte _month , Ack ' Month of Year &lt;br /&gt;
 I2crbyte _year , Nack ' Year &lt;br /&gt;
 I2cstop &lt;br /&gt;
 _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour) &lt;br /&gt;
 _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year) &lt;br /&gt;
Return &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
' DS1338 set date routine &lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
Setdate: &lt;br /&gt;
 _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year) &lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338w ' send address &lt;br /&gt;
 I2cwbyte 4 ' starting address in 1338 &lt;br /&gt;
 I2cwbyte _day ' Send Data to SECONDS &lt;br /&gt;
 I2cwbyte _month ' MINUTES &lt;br /&gt;
 I2cwbyte _year ' Hours &lt;br /&gt;
 I2cstop &lt;br /&gt;
Return &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
' DS1338 set time routine &lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
Settime: &lt;br /&gt;
 _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour) &lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338w ' send address &lt;br /&gt;
 I2cwbyte 0 ' starting address in 1338 &lt;br /&gt;
 I2cwbyte _sec ' Send Data to SECONDS &lt;br /&gt;
 I2cwbyte _min ' MINUTES &lt;br /&gt;
 I2cwbyte _hour ' Hours &lt;br /&gt;
 I2cstop &lt;br /&gt;
Return &lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WizFi210&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
=== HW part&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
HKipnik made an example how to make an UDP connection between the 7 inch display board and a Android SmartPhone.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Here some pictures of the WizFi210 with a DIY-antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:Wizfi210 5.jpg|thumb|center|400px|Wizfi210 5.jpg]]&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;250px&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
File:Wizfi210_1.jpg‎|Antenna, 31 mm, with an cap.&lt;br /&gt;
File:Wizfi210_2.jpg‎|Antenna, shrinked &lt;br /&gt;
File:Wizfi210_3.jpg‎|The WIZFI210&lt;br /&gt;
File:Wizfi210_4.jpg‎|The WIZFI210 in detail &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Config part&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
To configure the WIZFI210 with WPA or WEP key, with DHCP or fixed IP and to have it auto-connect a level converter RS232 from PC straight to the WIZFI210&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the WIZSmartScript from the Wiznet site&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;gallery widths=&amp;quot;240px&amp;quot; heights=&amp;quot;240px&amp;quot; align=&amp;quot;center&amp;quot; perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:Wizfi210_1c.jpg‎|The ZIP-file extracted&lt;br /&gt;
File:Wizfi210_2c.jpg‎|Start the WIZSmartScript program, baudrate 115200 &lt;br /&gt;
File:Wizfi210_3c.jpg‎|Find WizFI and Set Command Mode &lt;br /&gt;
File:Wizfi210_4c.jpg‎|Do an Access Point scan and select the Access Point to associate with &lt;br /&gt;
File:Wizfi210_5c.jpg‎|Select the WiFi security. In this case WPA with the Passphrase 'wisclub1'&lt;br /&gt;
File:Wizfi210_6c.jpg‎|Give the module a static IP address (or if you want, give it a DHCP IP address) &lt;br /&gt;
File:Wizfi210_7c.jpg‎|Here you can change the Serial port options&lt;br /&gt;
File:Wizfi210_8c.jpg‎|For this example we will be using UDP traffic to a PC in our network that has the IP address 192.168.0.237 listening to port 5000&lt;br /&gt;
File:Wizfi210_9c.jpg‎|Select an save option. Here you create an startup profile for the WizFi210 module&lt;br /&gt;
File:Wizfi210_10c.jpg‎|You enable auto connect on the next reboot and enable UART messages&lt;br /&gt;
File:Wizfi210_11c.jpg‎|We saved it with the name benshobbycorner and here an example of a script &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
With a not programmed Atxmega128A1. Remove all four jumpers of the Alvidi module (RS232). The MAX3232 on the module will be isolated. Connect the TXD1 and RXD1 from the WIZFI210 to the second RS232 of the Alvidi module. Connect a terminal program, 115200 baud and power the board. If all is connected right you will get the information from the WIZFI210. Start the WizSmartScript and there you go.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:rs232_trick.jpg|thumb|450px|center]]&lt;br /&gt;
&lt;br /&gt;
=== SW part&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
For the next part, Bascom, Android and Wireless, '''all credit goes to HKipnik alias HKBascom alias Heiko'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First some pictures: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;gallery widths=340px heights=340&amp;gt;&lt;br /&gt;
File:Android.png&lt;br /&gt;
File:7inch_android.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this example the WIZFI210 has got IP-address 192.168.0.250&lt;br /&gt;
&lt;br /&gt;
And my Samsung Galaxy Note II has IP-address 192.168.0.237&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Port 5000 is used to send UDP-traffic from the 7 inch display board to the Android SmartPhone.&lt;br /&gt;
&lt;br /&gt;
Port 8000 is used to send UDP-traffic from SmartPhone to 7 inch display.&lt;br /&gt;
&lt;br /&gt;
All wireless. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the software for the 7 inch display board and for the Android Smartphone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first in Bascom-AVR and the second in Basic4Android.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the subdirectory bilder, the images&lt;br /&gt;
&lt;br /&gt;
In the subdirectory wizfi210 a small testprogram and some more info we got from Heiko.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What we did change was the touchscreen routine. We left the old one from Heiko remarked, and put in our own routine.&lt;br /&gt;
&lt;br /&gt;
Seems there are different displays with different touchscreens.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File 1:''' [[Media:7inch_wizfi210.zip|Download 7inch_wizfi210.zip]]&lt;br /&gt;
&lt;br /&gt;
'''File 2:''' [[Media:Test_udp_wizfi210.zip‎|Download Test_udp_wizfi210.zip‎]]&lt;br /&gt;
&lt;br /&gt;
== DHT11 sensor ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DHT11 sensor on location JP1 and from www.AVRprojects.ru we have download software to read the DHT11. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Dht11 7inch.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now we got the time and date from the DS1338-33 and temperature and humidity from a DHT11. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time to make a WordClock. Fontsize 25x32. So on a 800 x 480 pixel display we can make 13 lines of 31 characters. &lt;br /&gt;
&lt;br /&gt;
It is a running clock, the text is refreshed three times a minute so it is very dynamic. &lt;br /&gt;
&lt;br /&gt;
In real the blue is less intensive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Wordclock.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
== iTrax300 GPS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The next step is the iTrax300 GPS module. It is the WIZFI210 or the Itrax300 GPS module, they are on the same serial lines. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;gallery widths=&amp;quot;260px&amp;quot; heights=&amp;quot;260px&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
File:itrax2.jpg&lt;br /&gt;
File:itrax300x.jpg&lt;br /&gt;
File:rs232trick_itrax.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Same trick to connect a PC direct to the iTrax300 module &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:itrax300.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the output of the module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using a switch mode regulator ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a switched mode regulator available which is pin compatible with the 7805 regulator and a similar size. The 7805 regulator is supposed to be roughly 55% efficient where as the switch mode regulator TSR 1-2450 is supposed to be roughly 95% efficient. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Tsr_1-2450_x2.jpg|thumb|center]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Due to the backlight of the display, the 7805 got warm/hot, with the TSR 1-2450 no problem.&lt;br /&gt;
&lt;br /&gt;
== Video&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|3BdFNtNBRlM |500|center|WizFi210 test UDP and Bascom (by HKipnik)}}&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|dpdl6lNeB1Y |500|center|SSD1963 7zoll mit ATxmega128A1 (by HKipnik)}}&lt;br /&gt;
&lt;br /&gt;
== Authors&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&amp;lt;div&amp;gt;Ben&amp;amp;nbsp;Zijlstra and Theo Kleijn designed the board and initial software.&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;HKipnik made various software extensions such as the WIFI.&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/7_inch_display_board</id>
		<title>7 inch display board</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/7_inch_display_board"/>
				<updated>2013-04-03T15:31:05Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[7 inch display board#WizFi210|WIZFI210 Wireless network]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[7 inch display board#iTrax300|GPSITRAX300 GPS]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;BTM220 Class 1 bluetooth&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Bluegiga WT41 1 kilometer bluetooth&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SCP1000 barometer&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[7 inch display board#DS1338-33 clock|DSDS1337 clock with battery backup]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;RS232&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Alvidi AVRB Atxmega128A1 module&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;7 inch display&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;FT232RL USB&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
[[File:7inch display5.jpg|thumb|center|450px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;gallery widths=&amp;quot;160px&amp;quot; heights=&amp;quot;160px&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
File:7inch_display1.jpg&lt;br /&gt;
File:7inch_display2.jpg&lt;br /&gt;
File:7inch_display3.jpg&lt;br /&gt;
File:7inch_display4.jpg&lt;br /&gt;
File:7inch_display6.jpg&lt;br /&gt;
File:7inch_display7.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Source code ==&lt;br /&gt;
&lt;br /&gt;
Include a PDF-file for the 7 inch display and some pictures for the Alvidi on-board SD-card&amp;amp;nbsp;:&amp;amp;nbsp;[[Media:Ssd1963 7inch.zip|Download Ssd1963_7inch.zip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Example of main program:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'&lt;br /&gt;
' Copyright Michael Koecher aka six1 8/2010&lt;br /&gt;
' -&amp;gt; http://www.six1.net/ michael@koecher-web.de&lt;br /&gt;
'&lt;br /&gt;
' http://creativecommons.org/licenses/by-sa/3.0/de/&lt;br /&gt;
' Original nur von http://bascom-forum.de&lt;br /&gt;
' Sie dürfen:&lt;br /&gt;
'&lt;br /&gt;
' * das Werk bzw. den Inhalt vervielfältigen, verbreiten und öffentlich zugänglich machen&lt;br /&gt;
'&lt;br /&gt;
' * Abwandlungen und Bearbeitungen des Werkes bzw. Inhaltes anfertigen&lt;br /&gt;
'&lt;br /&gt;
' Zu Den Folgenden Bedingungen:&lt;br /&gt;
'&lt;br /&gt;
' * Namensnennung.&lt;br /&gt;
' Sie müssen den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.&lt;br /&gt;
'&lt;br /&gt;
' * Keine kommerzielle Nutzung.&lt;br /&gt;
' Dieses Werk darf nicht für kommerzielle Zwecke verwendet werden.&lt;br /&gt;
'&lt;br /&gt;
' * Weitergabe unter gleichen Bedingungen.&lt;br /&gt;
' Wenn Sie das lizenzierte Werk bzw. den lizenzierten Inhalt bearbeiten&lt;br /&gt;
' oder in anderer Weise erkennbar als Grundlage für eigenes Schaffen verwenden,&lt;br /&gt;
' dürfen Sie die daraufhin neu entstandenen Werke bzw. Inhalte nur&lt;br /&gt;
' unter Verwendung von Lizenzbedingungen weitergeben, die mit denen&lt;br /&gt;
' dieses Lizenzvertrages identisch oder vergleichbar sind.&lt;br /&gt;
'&lt;br /&gt;
' Wobei gilt:&lt;br /&gt;
'&lt;br /&gt;
' * Verzichtserklärung&lt;br /&gt;
' Jede der vorgenannten Bedingungen kann aufgehoben werden, sofern Sie&lt;br /&gt;
' die ausdrückliche Einwilligung des Rechteinhabers dazu erhalten.&lt;br /&gt;
'&lt;br /&gt;
' * Sonstige Rechte&lt;br /&gt;
' Die Lizenz hat keinerlei Einfluss auf die folgenden Rechte:&lt;br /&gt;
' - Die gesetzlichen Schranken des Urheberrechts und sonstigen&lt;br /&gt;
' Befugnisse zur privaten Nutzung&lt;br /&gt;
' - Das Urheberpersönlichkeitsrecht des Rechteinhabers&lt;br /&gt;
' - Rechte anderer Personen, entweder am Lizenzgegenstand selber oder&lt;br /&gt;
' bezüglich seiner Verwendung, zum Beispiel Persönlichkeitsrechte abgebildeter Personen.&lt;br /&gt;
'&lt;br /&gt;
' Hinweis&lt;br /&gt;
'&lt;br /&gt;
' Im Falle einer Verbreitung müssen Sie anderen alle Lizenzbedingungen&lt;br /&gt;
' mitteilen, die für dieses Werk gelten. Am einfachsten ist es,&lt;br /&gt;
' einen Link auf http://creativecommons.org/licenses/by-sa/3.0/de/ einzubinden.&lt;br /&gt;
'&lt;br /&gt;
'&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'auf Treiber IC SSD1963 geändert 26.11.2011&lt;br /&gt;
'10.09.2012 angepast für Display Typ AT070TN90&lt;br /&gt;
'Hkipnik@aol.com&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;xm128a1def.dat&amp;quot;&lt;br /&gt;
$hwstack = 200&lt;br /&gt;
$swstack = 200&lt;br /&gt;
$framesize = 500&lt;br /&gt;
$crystal = 32000000&lt;br /&gt;
&lt;br /&gt;
Config Osc = Enabled , 32mhzosc = Enabled&lt;br /&gt;
Config Sysclock = 32mhz '--&amp;gt; 32MHz&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
 Config Osc = Disabled , 32mhzosc = Enabled&lt;br /&gt;
 Osc_pllctrl = &amp;amp;B10_0_00100&lt;br /&gt;
 Do&lt;br /&gt;
 Loop Until Osc_status.1 = 1 'Check if RC2MRDY is ready '&lt;br /&gt;
 'enable PLL&lt;br /&gt;
 Set Osc_ctrl.4 'PLL enable&lt;br /&gt;
 'configure the systemclock&lt;br /&gt;
 Config Sysclock = Pll , Prescalea = 1 , Prescalebc = 1_1 'use PLL&lt;br /&gt;
&lt;br /&gt;
 Stop Watchdog&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'Touch Interrupt&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
Const Use_touch = 1 'use Touch = 1&lt;br /&gt;
#if Use_touch = 1&lt;br /&gt;
 Config Pinf.0 = Input 'Set PINF.4 as Input&lt;br /&gt;
 'Because of the activated Pullup the PIN Level is high and there is a falling edge when switch is pressed&lt;br /&gt;
 Config Xpin = Portf.0 , Outpull = Pullup , Sense = Falling 'enable Pull up and reaction on falling edge&lt;br /&gt;
&lt;br /&gt;
 Portf_int0mask = &amp;amp;B0000_0001 'include PIN0 in INT0 Mask&lt;br /&gt;
 Portf_intctrl = &amp;amp;B0000_00_01&lt;br /&gt;
 '^ 'Low Level INT0 Interrupt&lt;br /&gt;
&lt;br /&gt;
 Dim Touch_flag As Bit&lt;br /&gt;
 Touch_flag = 0&lt;br /&gt;
 On Portf_int0 Touch_int&lt;br /&gt;
 Enable Portf_int0 , Lo&lt;br /&gt;
#endif&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 Config Priority = Static , Vector = Application , Lo = Enabled , Med = Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Config Com5 = 57600 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8&lt;br /&gt;
 Open &amp;quot;COM5:&amp;quot; For Binary As #1&lt;br /&gt;
&lt;br /&gt;
 Print #1 , &amp;quot;Graphic 800x480&amp;quot;&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 $include &amp;quot;SSD1963_declarations.inc&amp;quot;&lt;br /&gt;
 $include &amp;quot;SSD1963__sd-card_declarations.inc&amp;quot;&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 Call Sdcard_initialize()&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 'use for Demo&lt;br /&gt;
 Dim Farbe As Word , Countx As Word , Xx1 As Word , Xx2 As Word , Yy1 As Word , Yy2 As Word , Penwidth As Byte , Box_fill As Byte , Show_border As Byte , Radius As Word&lt;br /&gt;
 Dim Help_str As String * 10&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'Start SSD1963&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 Call Ssd1963_init()&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
 Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
'*** MAIN **********************************************************************&lt;br /&gt;
 Do&lt;br /&gt;
 Call Lcd_clear(blue)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Clear area&amp;quot; , 230 , 20 , 1 , Yellow , Blue)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear_area(100 , 100 , 200 , 200 , White)&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear_area(1 , 1 , 200 , 200 , White)&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_text( &amp;quot;BMP 800x480 hallo world&amp;quot; , 100 , 224 , 1 , Gold , Black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;BMP 800x480 hallo world&amp;quot; , 20 , 20 , 2 , Yellow , Red)&lt;br /&gt;
 Wait 1&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;frau5.bmp&amp;quot; , 200 , 0) '24Bit&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;tieger5.bmp&amp;quot; , 1 , 0) '24Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;24Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;tieg8bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;8Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;frau5.bmp&amp;quot; , 200 , 0) '24Bit&lt;br /&gt;
 Wait 1&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;pic18bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;8Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;pic28bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;8Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
&lt;br /&gt;
 Wait 3&lt;br /&gt;
 Call Lcd_negate(0)&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;negate&amp;quot; , 310 , 200 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 3&lt;br /&gt;
 Call Lcd_negate(1)&lt;br /&gt;
&lt;br /&gt;
 Wait 3&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;test8bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Wait 1&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(blue)&lt;br /&gt;
&lt;br /&gt;
#if Use_touch = 1&lt;br /&gt;
 Call Lcd_box(700 , 420 , 790 , 470 , Red , White , 1 , 1)&lt;br /&gt;
 Call Lcd_box(100 , 100 , 105 , 105 , Red , White , 1 , 1)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Touch me&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;next&amp;quot; , 720 , 435 , 2 , Yellow , Red)&lt;br /&gt;
 Do&lt;br /&gt;
 If Touch_flag = 1 Then&lt;br /&gt;
&lt;br /&gt;
 Touchx = 0&lt;br /&gt;
 Touchy = 0&lt;br /&gt;
 Call Lcd_read_touch()&lt;br /&gt;
&lt;br /&gt;
 Select Case Touchx&lt;br /&gt;
 Case 570 To 630 :&lt;br /&gt;
 If Touchy &amp;gt; 5 And Touchy &amp;lt; 65 Then&lt;br /&gt;
 Ende = 1&lt;br /&gt;
 End If&lt;br /&gt;
 End Select&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 If Ende = 1 Then&lt;br /&gt;
 Ende = 0&lt;br /&gt;
 Exit Do&lt;br /&gt;
 End If&lt;br /&gt;
 Touch_flag = 0&lt;br /&gt;
 End If&lt;br /&gt;
&lt;br /&gt;
 Loop&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;LINE&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Xx1 = Rnd(740)&lt;br /&gt;
 Xx2 = Rnd(740)&lt;br /&gt;
 Yy1 = 90 + Rnd(300)&lt;br /&gt;
 Yy2 = 90 + Rnd(300)&lt;br /&gt;
 Penwidth = Rnd(4)&lt;br /&gt;
 Penwidth = Rnd(4)&lt;br /&gt;
 Call Lcd_line(xx1 , Yy1 , Xx2 , Yy2 , Penwidth , Color_array(farbe))&lt;br /&gt;
 Next&lt;br /&gt;
&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;BOX FILL&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = Rnd(740)&lt;br /&gt;
 Xx2 = Rnd(740)&lt;br /&gt;
 Yy1 = 90 + Rnd(300)&lt;br /&gt;
 Yy2 = 90 + Rnd(300)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Box_fill = Rnd(100)&lt;br /&gt;
 If Box_fill &amp;lt; 50 Then Box_fill = 0&lt;br /&gt;
 Show_border = Rnd(100)&lt;br /&gt;
 If Show_border &amp;lt; 70 Then Show_border = 0&lt;br /&gt;
 Call Lcd_box(xx1 , Yy1 , Xx2 , Yy2 , Color_array(farbe) , White , Box_fill , 1)&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;BOX&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = Rnd(740)&lt;br /&gt;
 Xx2 = Rnd(740)&lt;br /&gt;
 Yy1 = 90 + Rnd(300)&lt;br /&gt;
 Yy2 = 90 + Rnd(300)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Call Lcd_box(xx1 , Yy1 , Xx2 , Yy2 , White , Color_array(farbe) , 0 , 1)&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Circle&amp;quot; , 370 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = 40 + Rnd(640)&lt;br /&gt;
 Yy1 = 20 + Rnd(400)&lt;br /&gt;
 Radius = Rnd(50)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Call Lcd_drawcircle(xx1 , Yy1 , Radius , 100 , 2 , Color_array(farbe))&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Circle Fill&amp;quot; , 370 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = 50 + Rnd(540)&lt;br /&gt;
 Yy1 = 80 + Rnd(300)&lt;br /&gt;
 Radius = Rnd(50)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Call Lcd_fill_circle(xx1 , Yy1 , Radius , Color_array(farbe))&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;BMP 320x240&amp;quot; , 330 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;sylt1.bmp&amp;quot; , 240 , 100)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;tieger5.bmp&amp;quot; , 0 , 0)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_setscrollarea(0 , 480 , 0)&lt;br /&gt;
 For Countx = 0 To 479&lt;br /&gt;
 Call Lcd_scroll(countx)&lt;br /&gt;
 Waitms 2&lt;br /&gt;
 Next&lt;br /&gt;
 For Countx = 479 To 0 Step -1&lt;br /&gt;
 Call Lcd_scroll(countx)&lt;br /&gt;
 Waitms 2&lt;br /&gt;
 Next&lt;br /&gt;
&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Loop&lt;br /&gt;
End&lt;br /&gt;
#if Use_touch = 1&lt;br /&gt;
Touch_int:&lt;br /&gt;
 Touch_flag = 1&lt;br /&gt;
 ' Print #1 , &amp;quot;Touch&amp;quot;&lt;br /&gt;
Return&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
 $include &amp;quot;SSD1963__sd-card_routines.inc&amp;quot;&lt;br /&gt;
 $include &amp;quot;SSD1963_functions.inc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 $include &amp;quot;Font12x16.font&amp;quot;&lt;br /&gt;
 $include &amp;quot;font25x32.font&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DS1338-33 clock ==&lt;br /&gt;
&lt;br /&gt;
Put a DS1338-33 clock IC on the board. It is the 3,3 volts 1307.&amp;amp;nbsp;&amp;lt;br/&amp;gt;Got some help to get soft I2c running, the command $forcesofti2c did the trick. And if you study the history.txt files of the Bascom-AVR updates, you will find this command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:7inch DS1338 33.jpg|thumb|center|400px|7inch DS1338 33.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And here the software, with on top a little scan to check if the clock can be found on the soft i2c bus &amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
$regfile = &amp;quot;xm128a1def.dat&amp;quot; &lt;br /&gt;
$hwstack = 200 &lt;br /&gt;
$swstack = 200 &lt;br /&gt;
$framesize = 500 &lt;br /&gt;
$crystal = 32000000 &lt;br /&gt;
&lt;br /&gt;
Config Osc = Enabled , 32mhzosc = Enabled &lt;br /&gt;
Config Sysclock = 32mhz &lt;br /&gt;
&lt;br /&gt;
Config Osc = Disabled , 32mhzosc = Enabled &lt;br /&gt;
Osc_pllctrl = &amp;amp;B10_0_00100 &lt;br /&gt;
Do &lt;br /&gt;
Loop Until Osc_status.1 = 1 'Check if RC2MRDY is ready ' &lt;br /&gt;
'enable PLL &lt;br /&gt;
Set Osc_ctrl.4 'PLL enable &lt;br /&gt;
'configure the systemclock &lt;br /&gt;
Config Sysclock = Pll , Prescalea = 1 , Prescalebc = 1_1 'use PLL &lt;br /&gt;
&lt;br /&gt;
Config Priority = Static , Vector = Application , Lo = Enabled , Med = Enabled &lt;br /&gt;
&lt;br /&gt;
Config Com5 = 57600 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8 &lt;br /&gt;
Open &amp;quot;COM5:&amp;quot; For Binary As #1 &lt;br /&gt;
&lt;br /&gt;
Print #1 , &amp;quot;Start clock&amp;quot; &lt;br /&gt;
&lt;br /&gt;
$forcesofti2c ' with this the software I2C/TWI commands are used when including i2c.lbx &lt;br /&gt;
$lib &amp;quot;i2c.lbx&amp;quot; ' override the normal xmega i2c lib &lt;br /&gt;
&lt;br /&gt;
Dim B As Byte &lt;br /&gt;
Dim Weekday As Byte &lt;br /&gt;
Dim Text As String * 30 &lt;br /&gt;
&lt;br /&gt;
Declare Sub Setdate &lt;br /&gt;
Declare Sub Settime &lt;br /&gt;
Declare Sub Getdatetime &lt;br /&gt;
&lt;br /&gt;
'We use here Virtual port 0 &lt;br /&gt;
Config Vport0 = B ' 'map portB to virtual port0 &lt;br /&gt;
&lt;br /&gt;
Config Scl = Port0 .3 ' Pin to use as SCL (The hardware pin is Pinb.1) &lt;br /&gt;
Config Sda = Port0 .4 ' Pin to use as SDA (The hardware pin is Pinb.0) &lt;br /&gt;
I2cinit ' Bring the Pin's in the proper state &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Print #1 , &amp;quot;Scan start&amp;quot; &lt;br /&gt;
For B = 0 To 254 Step 2 'for all odd addresses &lt;br /&gt;
 I2cstart 'send start &lt;br /&gt;
 I2cwbyte B 'send address &lt;br /&gt;
 If Err = 0 Then 'we got an ack &lt;br /&gt;
 Print #1 , &amp;quot;Slave at : &amp;quot; ; B ; &amp;quot; hex : &amp;quot; ; Hex(b) ; &amp;quot; bin : &amp;quot; ; Bin(b) &lt;br /&gt;
 End If &lt;br /&gt;
 I2cstop 'free bus &lt;br /&gt;
Next &lt;br /&gt;
Print #1 , &amp;quot;End Scan&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Wait 5 ' Bring the Pin's in the proper state &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'DS1338 &lt;br /&gt;
Const Ds1338w = &amp;amp;HD0 ' Adres van de Ds1338 clock &lt;br /&gt;
Const Ds1338r = &amp;amp;HD1 &lt;br /&gt;
&lt;br /&gt;
'Clock &lt;br /&gt;
Config Clock = User &lt;br /&gt;
Config Date = Dmy , Separator = . &lt;br /&gt;
&lt;br /&gt;
$lib &amp;quot;ds1307clock.lib&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'Time$ = &amp;quot;00:07:00&amp;quot; &lt;br /&gt;
'Date$ = &amp;quot;24.02.13&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do &lt;br /&gt;
Call Getdatetime &lt;br /&gt;
Print #1 , _hour &lt;br /&gt;
Print #1 , _min &lt;br /&gt;
Wait 5 &lt;br /&gt;
Loop &lt;br /&gt;
&lt;br /&gt;
End &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'called from ds1307clock.lib &lt;br /&gt;
&lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
' DS1338 Get date-time routine &lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
Getdatetime: &lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338w ' send address &lt;br /&gt;
 I2cwbyte 0 ' start address in 1338 &lt;br /&gt;
&lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338r ' send address &lt;br /&gt;
 I2crbyte _sec , Ack &lt;br /&gt;
 I2crbyte _min , Ack ' MINUTES &lt;br /&gt;
 I2crbyte _hour , Ack ' Hours &lt;br /&gt;
 I2crbyte Weekday , Ack ' Day of Week &lt;br /&gt;
 I2crbyte _day , Ack ' Day of Month &lt;br /&gt;
 I2crbyte _month , Ack ' Month of Year &lt;br /&gt;
 I2crbyte _year , Nack ' Year &lt;br /&gt;
 I2cstop &lt;br /&gt;
 _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour) &lt;br /&gt;
 _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year) &lt;br /&gt;
Return &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
' DS1338 set date routine &lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
Setdate: &lt;br /&gt;
 _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year) &lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338w ' send address &lt;br /&gt;
 I2cwbyte 4 ' starting address in 1338 &lt;br /&gt;
 I2cwbyte _day ' Send Data to SECONDS &lt;br /&gt;
 I2cwbyte _month ' MINUTES &lt;br /&gt;
 I2cwbyte _year ' Hours &lt;br /&gt;
 I2cstop &lt;br /&gt;
Return &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
' DS1338 set time routine &lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
Settime: &lt;br /&gt;
 _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour) &lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338w ' send address &lt;br /&gt;
 I2cwbyte 0 ' starting address in 1338 &lt;br /&gt;
 I2cwbyte _sec ' Send Data to SECONDS &lt;br /&gt;
 I2cwbyte _min ' MINUTES &lt;br /&gt;
 I2cwbyte _hour ' Hours &lt;br /&gt;
 I2cstop &lt;br /&gt;
Return &lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WizFi210&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
=== HW part&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
HKipnik made an example how to make an UDP connection between the 7 inch display board and a Android SmartPhone.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Here some pictures of the WizFi210 with a DIY-antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:Wizfi210 5.jpg|thumb|center|400px|Wizfi210 5.jpg]]&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;250px&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
File:Wizfi210_1.jpg‎|Antenna, 31 mm, with an cap.&lt;br /&gt;
File:Wizfi210_2.jpg‎|Antenna, shrinked &lt;br /&gt;
File:Wizfi210_3.jpg‎|The WIZFI210&lt;br /&gt;
File:Wizfi210_4.jpg‎|The WIZFI210 in detail &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Config part&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
To configure the WIZFI210 with WPA or WEP key, with DHCP or fixed IP and to have it auto-connect a level converter RS232 from PC straight to the WIZFI210&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the WIZSmartScript from the Wiznet site&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;gallery widths=&amp;quot;240px&amp;quot; heights=&amp;quot;240px&amp;quot; align=&amp;quot;center&amp;quot; perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:Wizfi210_1c.jpg‎|The ZIP-file extracted&lt;br /&gt;
File:Wizfi210_2c.jpg‎|Start the WIZSmartScript program, baudrate 115200 &lt;br /&gt;
File:Wizfi210_3c.jpg‎|Find WizFI and Set Command Mode &lt;br /&gt;
File:Wizfi210_4c.jpg‎|Do an Access Point scan and select the Access Point to associate with &lt;br /&gt;
File:Wizfi210_5c.jpg‎|Select the WiFi security. In this case WPA with the Passphrase 'wisclub1'&lt;br /&gt;
File:Wizfi210_6c.jpg‎|Give the module a static IP address (or if you want, give it a DHCP IP address) &lt;br /&gt;
File:Wizfi210_7c.jpg‎|Here you can change the Serial port options&lt;br /&gt;
File:Wizfi210_8c.jpg‎|For this example we will be using UDP traffic to a PC in our network that has the IP address 192.168.0.237 listening to port 5000&lt;br /&gt;
File:Wizfi210_9c.jpg‎|Select an save option. Here you create an startup profile for the WizFi210 module&lt;br /&gt;
File:Wizfi210_10c.jpg‎|You enable auto connect on the next reboot and enable UART messages&lt;br /&gt;
File:Wizfi210_11c.jpg‎|We saved it with the name benshobbycorner and here an example of a script &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
With a not programmed Atxmega128A1. Remove all four jumpers of the Alvidi module (RS232). The MAX3232 on the module will be isolated. Connect the TXD1 and RXD1 from the WIZFI210 to the second RS232 of the Alvidi module. Connect a terminal program, 115200 baud and power the board. If all is connected right you will get the information from the WIZFI210. Start the WizSmartScript and there you go.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:rs232_trick.jpg|thumb|450px|center]]&lt;br /&gt;
&lt;br /&gt;
=== SW part&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
For the next part, Bascom, Android and Wireless, '''all credit goes to HKipnik alias HKBascom alias Heiko'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First some pictures: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;gallery widths=340px heights=340&amp;gt;&lt;br /&gt;
File:Android.png&lt;br /&gt;
File:7inch_android.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this example the WIZFI210 has got IP-address 192.168.0.250&lt;br /&gt;
&lt;br /&gt;
And my Samsung Galaxy Note II has IP-address 192.168.0.237&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Port 5000 is used to send UDP-traffic from the 7 inch display board to the Android SmartPhone.&lt;br /&gt;
&lt;br /&gt;
Port 8000 is used to send UDP-traffic from SmartPhone to 7 inch display.&lt;br /&gt;
&lt;br /&gt;
All wireless. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the software for the 7 inch display board and for the Android Smartphone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first in Bascom-AVR and the second in Basic4Android.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the subdirectory bilder, the images&lt;br /&gt;
&lt;br /&gt;
In the subdirectory wizfi210 a small testprogram and some more info we got from Heiko.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What we did change was the touchscreen routine. We left the old one from Heiko remarked, and put in our own routine.&lt;br /&gt;
&lt;br /&gt;
Seems there are different displays with different touchscreens.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File 1:''' [[Media:7inch_wizfi210.zip|Download 7inch_wizfi210.zip]]&lt;br /&gt;
&lt;br /&gt;
'''File 2:''' [[Media:Test_udp_wizfi210.zip‎|Download Test_udp_wizfi210.zip‎]]&lt;br /&gt;
&lt;br /&gt;
== DHT11 sensor ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DHT11 sensor on location JP1 and from www.AVRprojects.ru we have download software to read the DHT11. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Dht11 7inch.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now we got the time and date from the DS1338-33 and temperature and humidity from a DHT11. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time to make a WordClock. Fontsize 25x32. So on a 800 x 480 pixel display we can make 13 lines of 31 characters. &lt;br /&gt;
&lt;br /&gt;
It is a running clock, the text is refreshed three times a minute so it is very dynamic. &lt;br /&gt;
&lt;br /&gt;
In real the blue is less intensive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Wordclock.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
== iTrax300 GPS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The next step is the iTrax300 GPS module. It is the WIZFI210 or the Itrax300 GPS module, they are on the same serial lines. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;gallery widths=&amp;quot;260px&amp;quot; heights=&amp;quot;260px&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
File:itrax2.jpg&lt;br /&gt;
File:itrax300x.jpg&lt;br /&gt;
File:rs232trick_itrax.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Same trick to connect a PC direct to the iTrax300 module &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:itrax300.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the output of the module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using a switch mode regulator ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a switched mode regulator available which is pin compatible with the 7805 regulator and a similar size. The 7805 regulator is supposed to be roughly 55% efficient where as the switch mode regulator TSR 1-2450 is supposed to be roughly 95% efficient. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Tsr_1-2450_x2.jpg|thumb|center]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Due to the backlight of the display, the 7805 got warm/hot, with the TSR 1-2450 no problem.&lt;br /&gt;
&lt;br /&gt;
== Video&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|3BdFNtNBRlM |500|center|WizFi210 test UDP and Bascom (by HKipnik)}}&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|dpdl6lNeB1Y |500|center|SSD1963 7zoll mit ATxmega128A1 (by HKipnik)}}&lt;br /&gt;
&lt;br /&gt;
== Authors&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&amp;lt;div&amp;gt;Ben&amp;amp;nbsp;Zijlstra and Theo Kleijn designed the board and initial software.&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;HKipnik made various software extensions such as the WIFI.&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/7_inch_display_board</id>
		<title>7 inch display board</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/7_inch_display_board"/>
				<updated>2013-04-03T15:28:53Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: /* Using a switch mode regulator */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[7 inch display board#WizFi210|WIZFI210 Wireless network]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;ITRAX300 GPS&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;BTM220 Class 1 bluetooth&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Bluegiga WT41 1 kilometer bluetooth&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SCP1000 barometer&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;DS1337 clock with battery backup&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;RS232&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Alvidi AVRB Atxmega128A1 module&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;7 inch display&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;FT232RL USB&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
[[File:7inch display5.jpg|thumb|center|450px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;gallery widths=&amp;quot;160px&amp;quot; heights=&amp;quot;160px&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
File:7inch_display1.jpg&lt;br /&gt;
File:7inch_display2.jpg&lt;br /&gt;
File:7inch_display3.jpg&lt;br /&gt;
File:7inch_display4.jpg&lt;br /&gt;
File:7inch_display6.jpg&lt;br /&gt;
File:7inch_display7.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Source code ==&lt;br /&gt;
&lt;br /&gt;
Include a PDF-file for the 7 inch display and some pictures for the Alvidi on-board SD-card&amp;amp;nbsp;:&amp;amp;nbsp;[[Media:Ssd1963 7inch.zip|Download Ssd1963_7inch.zip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Example of main program:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'&lt;br /&gt;
' Copyright Michael Koecher aka six1 8/2010&lt;br /&gt;
' -&amp;gt; http://www.six1.net/ michael@koecher-web.de&lt;br /&gt;
'&lt;br /&gt;
' http://creativecommons.org/licenses/by-sa/3.0/de/&lt;br /&gt;
' Original nur von http://bascom-forum.de&lt;br /&gt;
' Sie dürfen:&lt;br /&gt;
'&lt;br /&gt;
' * das Werk bzw. den Inhalt vervielfältigen, verbreiten und öffentlich zugänglich machen&lt;br /&gt;
'&lt;br /&gt;
' * Abwandlungen und Bearbeitungen des Werkes bzw. Inhaltes anfertigen&lt;br /&gt;
'&lt;br /&gt;
' Zu Den Folgenden Bedingungen:&lt;br /&gt;
'&lt;br /&gt;
' * Namensnennung.&lt;br /&gt;
' Sie müssen den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.&lt;br /&gt;
'&lt;br /&gt;
' * Keine kommerzielle Nutzung.&lt;br /&gt;
' Dieses Werk darf nicht für kommerzielle Zwecke verwendet werden.&lt;br /&gt;
'&lt;br /&gt;
' * Weitergabe unter gleichen Bedingungen.&lt;br /&gt;
' Wenn Sie das lizenzierte Werk bzw. den lizenzierten Inhalt bearbeiten&lt;br /&gt;
' oder in anderer Weise erkennbar als Grundlage für eigenes Schaffen verwenden,&lt;br /&gt;
' dürfen Sie die daraufhin neu entstandenen Werke bzw. Inhalte nur&lt;br /&gt;
' unter Verwendung von Lizenzbedingungen weitergeben, die mit denen&lt;br /&gt;
' dieses Lizenzvertrages identisch oder vergleichbar sind.&lt;br /&gt;
'&lt;br /&gt;
' Wobei gilt:&lt;br /&gt;
'&lt;br /&gt;
' * Verzichtserklärung&lt;br /&gt;
' Jede der vorgenannten Bedingungen kann aufgehoben werden, sofern Sie&lt;br /&gt;
' die ausdrückliche Einwilligung des Rechteinhabers dazu erhalten.&lt;br /&gt;
'&lt;br /&gt;
' * Sonstige Rechte&lt;br /&gt;
' Die Lizenz hat keinerlei Einfluss auf die folgenden Rechte:&lt;br /&gt;
' - Die gesetzlichen Schranken des Urheberrechts und sonstigen&lt;br /&gt;
' Befugnisse zur privaten Nutzung&lt;br /&gt;
' - Das Urheberpersönlichkeitsrecht des Rechteinhabers&lt;br /&gt;
' - Rechte anderer Personen, entweder am Lizenzgegenstand selber oder&lt;br /&gt;
' bezüglich seiner Verwendung, zum Beispiel Persönlichkeitsrechte abgebildeter Personen.&lt;br /&gt;
'&lt;br /&gt;
' Hinweis&lt;br /&gt;
'&lt;br /&gt;
' Im Falle einer Verbreitung müssen Sie anderen alle Lizenzbedingungen&lt;br /&gt;
' mitteilen, die für dieses Werk gelten. Am einfachsten ist es,&lt;br /&gt;
' einen Link auf http://creativecommons.org/licenses/by-sa/3.0/de/ einzubinden.&lt;br /&gt;
'&lt;br /&gt;
'&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'auf Treiber IC SSD1963 geändert 26.11.2011&lt;br /&gt;
'10.09.2012 angepast für Display Typ AT070TN90&lt;br /&gt;
'Hkipnik@aol.com&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;xm128a1def.dat&amp;quot;&lt;br /&gt;
$hwstack = 200&lt;br /&gt;
$swstack = 200&lt;br /&gt;
$framesize = 500&lt;br /&gt;
$crystal = 32000000&lt;br /&gt;
&lt;br /&gt;
Config Osc = Enabled , 32mhzosc = Enabled&lt;br /&gt;
Config Sysclock = 32mhz '--&amp;gt; 32MHz&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
 Config Osc = Disabled , 32mhzosc = Enabled&lt;br /&gt;
 Osc_pllctrl = &amp;amp;B10_0_00100&lt;br /&gt;
 Do&lt;br /&gt;
 Loop Until Osc_status.1 = 1 'Check if RC2MRDY is ready '&lt;br /&gt;
 'enable PLL&lt;br /&gt;
 Set Osc_ctrl.4 'PLL enable&lt;br /&gt;
 'configure the systemclock&lt;br /&gt;
 Config Sysclock = Pll , Prescalea = 1 , Prescalebc = 1_1 'use PLL&lt;br /&gt;
&lt;br /&gt;
 Stop Watchdog&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'Touch Interrupt&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
Const Use_touch = 1 'use Touch = 1&lt;br /&gt;
#if Use_touch = 1&lt;br /&gt;
 Config Pinf.0 = Input 'Set PINF.4 as Input&lt;br /&gt;
 'Because of the activated Pullup the PIN Level is high and there is a falling edge when switch is pressed&lt;br /&gt;
 Config Xpin = Portf.0 , Outpull = Pullup , Sense = Falling 'enable Pull up and reaction on falling edge&lt;br /&gt;
&lt;br /&gt;
 Portf_int0mask = &amp;amp;B0000_0001 'include PIN0 in INT0 Mask&lt;br /&gt;
 Portf_intctrl = &amp;amp;B0000_00_01&lt;br /&gt;
 '^ 'Low Level INT0 Interrupt&lt;br /&gt;
&lt;br /&gt;
 Dim Touch_flag As Bit&lt;br /&gt;
 Touch_flag = 0&lt;br /&gt;
 On Portf_int0 Touch_int&lt;br /&gt;
 Enable Portf_int0 , Lo&lt;br /&gt;
#endif&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 Config Priority = Static , Vector = Application , Lo = Enabled , Med = Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Config Com5 = 57600 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8&lt;br /&gt;
 Open &amp;quot;COM5:&amp;quot; For Binary As #1&lt;br /&gt;
&lt;br /&gt;
 Print #1 , &amp;quot;Graphic 800x480&amp;quot;&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 $include &amp;quot;SSD1963_declarations.inc&amp;quot;&lt;br /&gt;
 $include &amp;quot;SSD1963__sd-card_declarations.inc&amp;quot;&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 Call Sdcard_initialize()&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 'use for Demo&lt;br /&gt;
 Dim Farbe As Word , Countx As Word , Xx1 As Word , Xx2 As Word , Yy1 As Word , Yy2 As Word , Penwidth As Byte , Box_fill As Byte , Show_border As Byte , Radius As Word&lt;br /&gt;
 Dim Help_str As String * 10&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'Start SSD1963&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 Call Ssd1963_init()&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
 Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
'*** MAIN **********************************************************************&lt;br /&gt;
 Do&lt;br /&gt;
 Call Lcd_clear(blue)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Clear area&amp;quot; , 230 , 20 , 1 , Yellow , Blue)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear_area(100 , 100 , 200 , 200 , White)&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear_area(1 , 1 , 200 , 200 , White)&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_text( &amp;quot;BMP 800x480 hallo world&amp;quot; , 100 , 224 , 1 , Gold , Black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;BMP 800x480 hallo world&amp;quot; , 20 , 20 , 2 , Yellow , Red)&lt;br /&gt;
 Wait 1&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;frau5.bmp&amp;quot; , 200 , 0) '24Bit&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;tieger5.bmp&amp;quot; , 1 , 0) '24Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;24Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;tieg8bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;8Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;frau5.bmp&amp;quot; , 200 , 0) '24Bit&lt;br /&gt;
 Wait 1&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;pic18bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;8Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;pic28bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;8Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
&lt;br /&gt;
 Wait 3&lt;br /&gt;
 Call Lcd_negate(0)&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;negate&amp;quot; , 310 , 200 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 3&lt;br /&gt;
 Call Lcd_negate(1)&lt;br /&gt;
&lt;br /&gt;
 Wait 3&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;test8bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Wait 1&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(blue)&lt;br /&gt;
&lt;br /&gt;
#if Use_touch = 1&lt;br /&gt;
 Call Lcd_box(700 , 420 , 790 , 470 , Red , White , 1 , 1)&lt;br /&gt;
 Call Lcd_box(100 , 100 , 105 , 105 , Red , White , 1 , 1)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Touch me&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;next&amp;quot; , 720 , 435 , 2 , Yellow , Red)&lt;br /&gt;
 Do&lt;br /&gt;
 If Touch_flag = 1 Then&lt;br /&gt;
&lt;br /&gt;
 Touchx = 0&lt;br /&gt;
 Touchy = 0&lt;br /&gt;
 Call Lcd_read_touch()&lt;br /&gt;
&lt;br /&gt;
 Select Case Touchx&lt;br /&gt;
 Case 570 To 630 :&lt;br /&gt;
 If Touchy &amp;gt; 5 And Touchy &amp;lt; 65 Then&lt;br /&gt;
 Ende = 1&lt;br /&gt;
 End If&lt;br /&gt;
 End Select&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 If Ende = 1 Then&lt;br /&gt;
 Ende = 0&lt;br /&gt;
 Exit Do&lt;br /&gt;
 End If&lt;br /&gt;
 Touch_flag = 0&lt;br /&gt;
 End If&lt;br /&gt;
&lt;br /&gt;
 Loop&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;LINE&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Xx1 = Rnd(740)&lt;br /&gt;
 Xx2 = Rnd(740)&lt;br /&gt;
 Yy1 = 90 + Rnd(300)&lt;br /&gt;
 Yy2 = 90 + Rnd(300)&lt;br /&gt;
 Penwidth = Rnd(4)&lt;br /&gt;
 Penwidth = Rnd(4)&lt;br /&gt;
 Call Lcd_line(xx1 , Yy1 , Xx2 , Yy2 , Penwidth , Color_array(farbe))&lt;br /&gt;
 Next&lt;br /&gt;
&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;BOX FILL&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = Rnd(740)&lt;br /&gt;
 Xx2 = Rnd(740)&lt;br /&gt;
 Yy1 = 90 + Rnd(300)&lt;br /&gt;
 Yy2 = 90 + Rnd(300)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Box_fill = Rnd(100)&lt;br /&gt;
 If Box_fill &amp;lt; 50 Then Box_fill = 0&lt;br /&gt;
 Show_border = Rnd(100)&lt;br /&gt;
 If Show_border &amp;lt; 70 Then Show_border = 0&lt;br /&gt;
 Call Lcd_box(xx1 , Yy1 , Xx2 , Yy2 , Color_array(farbe) , White , Box_fill , 1)&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;BOX&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = Rnd(740)&lt;br /&gt;
 Xx2 = Rnd(740)&lt;br /&gt;
 Yy1 = 90 + Rnd(300)&lt;br /&gt;
 Yy2 = 90 + Rnd(300)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Call Lcd_box(xx1 , Yy1 , Xx2 , Yy2 , White , Color_array(farbe) , 0 , 1)&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Circle&amp;quot; , 370 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = 40 + Rnd(640)&lt;br /&gt;
 Yy1 = 20 + Rnd(400)&lt;br /&gt;
 Radius = Rnd(50)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Call Lcd_drawcircle(xx1 , Yy1 , Radius , 100 , 2 , Color_array(farbe))&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Circle Fill&amp;quot; , 370 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = 50 + Rnd(540)&lt;br /&gt;
 Yy1 = 80 + Rnd(300)&lt;br /&gt;
 Radius = Rnd(50)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Call Lcd_fill_circle(xx1 , Yy1 , Radius , Color_array(farbe))&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;BMP 320x240&amp;quot; , 330 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;sylt1.bmp&amp;quot; , 240 , 100)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;tieger5.bmp&amp;quot; , 0 , 0)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_setscrollarea(0 , 480 , 0)&lt;br /&gt;
 For Countx = 0 To 479&lt;br /&gt;
 Call Lcd_scroll(countx)&lt;br /&gt;
 Waitms 2&lt;br /&gt;
 Next&lt;br /&gt;
 For Countx = 479 To 0 Step -1&lt;br /&gt;
 Call Lcd_scroll(countx)&lt;br /&gt;
 Waitms 2&lt;br /&gt;
 Next&lt;br /&gt;
&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Loop&lt;br /&gt;
End&lt;br /&gt;
#if Use_touch = 1&lt;br /&gt;
Touch_int:&lt;br /&gt;
 Touch_flag = 1&lt;br /&gt;
 ' Print #1 , &amp;quot;Touch&amp;quot;&lt;br /&gt;
Return&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
 $include &amp;quot;SSD1963__sd-card_routines.inc&amp;quot;&lt;br /&gt;
 $include &amp;quot;SSD1963_functions.inc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 $include &amp;quot;Font12x16.font&amp;quot;&lt;br /&gt;
 $include &amp;quot;font25x32.font&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DS1338-33 clock ==&lt;br /&gt;
&lt;br /&gt;
Put a DS1338-33 clock IC on the board. It is the 3,3 volts 1307.&amp;amp;nbsp;&amp;lt;br/&amp;gt;Got some help to get soft I2c running, the command $forcesofti2c did the trick. And if you study the history.txt files of the Bascom-AVR updates, you will find this command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:7inch DS1338 33.jpg|thumb|center|400px|7inch DS1338 33.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And here the software, with on top a little scan to check if the clock can be found on the soft i2c bus &amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
$regfile = &amp;quot;xm128a1def.dat&amp;quot; &lt;br /&gt;
$hwstack = 200 &lt;br /&gt;
$swstack = 200 &lt;br /&gt;
$framesize = 500 &lt;br /&gt;
$crystal = 32000000 &lt;br /&gt;
&lt;br /&gt;
Config Osc = Enabled , 32mhzosc = Enabled &lt;br /&gt;
Config Sysclock = 32mhz &lt;br /&gt;
&lt;br /&gt;
Config Osc = Disabled , 32mhzosc = Enabled &lt;br /&gt;
Osc_pllctrl = &amp;amp;B10_0_00100 &lt;br /&gt;
Do &lt;br /&gt;
Loop Until Osc_status.1 = 1 'Check if RC2MRDY is ready ' &lt;br /&gt;
'enable PLL &lt;br /&gt;
Set Osc_ctrl.4 'PLL enable &lt;br /&gt;
'configure the systemclock &lt;br /&gt;
Config Sysclock = Pll , Prescalea = 1 , Prescalebc = 1_1 'use PLL &lt;br /&gt;
&lt;br /&gt;
Config Priority = Static , Vector = Application , Lo = Enabled , Med = Enabled &lt;br /&gt;
&lt;br /&gt;
Config Com5 = 57600 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8 &lt;br /&gt;
Open &amp;quot;COM5:&amp;quot; For Binary As #1 &lt;br /&gt;
&lt;br /&gt;
Print #1 , &amp;quot;Start clock&amp;quot; &lt;br /&gt;
&lt;br /&gt;
$forcesofti2c ' with this the software I2C/TWI commands are used when including i2c.lbx &lt;br /&gt;
$lib &amp;quot;i2c.lbx&amp;quot; ' override the normal xmega i2c lib &lt;br /&gt;
&lt;br /&gt;
Dim B As Byte &lt;br /&gt;
Dim Weekday As Byte &lt;br /&gt;
Dim Text As String * 30 &lt;br /&gt;
&lt;br /&gt;
Declare Sub Setdate &lt;br /&gt;
Declare Sub Settime &lt;br /&gt;
Declare Sub Getdatetime &lt;br /&gt;
&lt;br /&gt;
'We use here Virtual port 0 &lt;br /&gt;
Config Vport0 = B ' 'map portB to virtual port0 &lt;br /&gt;
&lt;br /&gt;
Config Scl = Port0 .3 ' Pin to use as SCL (The hardware pin is Pinb.1) &lt;br /&gt;
Config Sda = Port0 .4 ' Pin to use as SDA (The hardware pin is Pinb.0) &lt;br /&gt;
I2cinit ' Bring the Pin's in the proper state &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Print #1 , &amp;quot;Scan start&amp;quot; &lt;br /&gt;
For B = 0 To 254 Step 2 'for all odd addresses &lt;br /&gt;
 I2cstart 'send start &lt;br /&gt;
 I2cwbyte B 'send address &lt;br /&gt;
 If Err = 0 Then 'we got an ack &lt;br /&gt;
 Print #1 , &amp;quot;Slave at : &amp;quot; ; B ; &amp;quot; hex : &amp;quot; ; Hex(b) ; &amp;quot; bin : &amp;quot; ; Bin(b) &lt;br /&gt;
 End If &lt;br /&gt;
 I2cstop 'free bus &lt;br /&gt;
Next &lt;br /&gt;
Print #1 , &amp;quot;End Scan&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Wait 5 ' Bring the Pin's in the proper state &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'DS1338 &lt;br /&gt;
Const Ds1338w = &amp;amp;HD0 ' Adres van de Ds1338 clock &lt;br /&gt;
Const Ds1338r = &amp;amp;HD1 &lt;br /&gt;
&lt;br /&gt;
'Clock &lt;br /&gt;
Config Clock = User &lt;br /&gt;
Config Date = Dmy , Separator = . &lt;br /&gt;
&lt;br /&gt;
$lib &amp;quot;ds1307clock.lib&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'Time$ = &amp;quot;00:07:00&amp;quot; &lt;br /&gt;
'Date$ = &amp;quot;24.02.13&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do &lt;br /&gt;
Call Getdatetime &lt;br /&gt;
Print #1 , _hour &lt;br /&gt;
Print #1 , _min &lt;br /&gt;
Wait 5 &lt;br /&gt;
Loop &lt;br /&gt;
&lt;br /&gt;
End &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'called from ds1307clock.lib &lt;br /&gt;
&lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
' DS1338 Get date-time routine &lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
Getdatetime: &lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338w ' send address &lt;br /&gt;
 I2cwbyte 0 ' start address in 1338 &lt;br /&gt;
&lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338r ' send address &lt;br /&gt;
 I2crbyte _sec , Ack &lt;br /&gt;
 I2crbyte _min , Ack ' MINUTES &lt;br /&gt;
 I2crbyte _hour , Ack ' Hours &lt;br /&gt;
 I2crbyte Weekday , Ack ' Day of Week &lt;br /&gt;
 I2crbyte _day , Ack ' Day of Month &lt;br /&gt;
 I2crbyte _month , Ack ' Month of Year &lt;br /&gt;
 I2crbyte _year , Nack ' Year &lt;br /&gt;
 I2cstop &lt;br /&gt;
 _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour) &lt;br /&gt;
 _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year) &lt;br /&gt;
Return &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
' DS1338 set date routine &lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
Setdate: &lt;br /&gt;
 _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year) &lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338w ' send address &lt;br /&gt;
 I2cwbyte 4 ' starting address in 1338 &lt;br /&gt;
 I2cwbyte _day ' Send Data to SECONDS &lt;br /&gt;
 I2cwbyte _month ' MINUTES &lt;br /&gt;
 I2cwbyte _year ' Hours &lt;br /&gt;
 I2cstop &lt;br /&gt;
Return &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
' DS1338 set time routine &lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
Settime: &lt;br /&gt;
 _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour) &lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338w ' send address &lt;br /&gt;
 I2cwbyte 0 ' starting address in 1338 &lt;br /&gt;
 I2cwbyte _sec ' Send Data to SECONDS &lt;br /&gt;
 I2cwbyte _min ' MINUTES &lt;br /&gt;
 I2cwbyte _hour ' Hours &lt;br /&gt;
 I2cstop &lt;br /&gt;
Return &lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WizFi210&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
=== HW part&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
HKipnik made an example how to make an UDP connection between the 7 inch display board and a Android SmartPhone.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Here some pictures of the WizFi210 with a DIY-antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:Wizfi210 5.jpg|thumb|center|400px|Wizfi210 5.jpg]]&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;250px&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
File:Wizfi210_1.jpg‎|Antenna, 31 mm, with an cap.&lt;br /&gt;
File:Wizfi210_2.jpg‎|Antenna, shrinked &lt;br /&gt;
File:Wizfi210_3.jpg‎|The WIZFI210&lt;br /&gt;
File:Wizfi210_4.jpg‎|The WIZFI210 in detail &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Config part&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
To configure the WIZFI210 with WPA or WEP key, with DHCP or fixed IP and to have it auto-connect a level converter RS232 from PC straight to the WIZFI210&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the WIZSmartScript from the Wiznet site&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;gallery widths=&amp;quot;240px&amp;quot; heights=&amp;quot;240px&amp;quot; align=&amp;quot;center&amp;quot; perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:Wizfi210_1c.jpg‎|The ZIP-file extracted&lt;br /&gt;
File:Wizfi210_2c.jpg‎|Start the WIZSmartScript program, baudrate 115200 &lt;br /&gt;
File:Wizfi210_3c.jpg‎|Find WizFI and Set Command Mode &lt;br /&gt;
File:Wizfi210_4c.jpg‎|Do an Access Point scan and select the Access Point to associate with &lt;br /&gt;
File:Wizfi210_5c.jpg‎|Select the WiFi security. In this case WPA with the Passphrase 'wisclub1'&lt;br /&gt;
File:Wizfi210_6c.jpg‎|Give the module a static IP address (or if you want, give it a DHCP IP address) &lt;br /&gt;
File:Wizfi210_7c.jpg‎|Here you can change the Serial port options&lt;br /&gt;
File:Wizfi210_8c.jpg‎|For this example we will be using UDP traffic to a PC in our network that has the IP address 192.168.0.237 listening to port 5000&lt;br /&gt;
File:Wizfi210_9c.jpg‎|Select an save option. Here you create an startup profile for the WizFi210 module&lt;br /&gt;
File:Wizfi210_10c.jpg‎|You enable auto connect on the next reboot and enable UART messages&lt;br /&gt;
File:Wizfi210_11c.jpg‎|We saved it with the name benshobbycorner and here an example of a script &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
With a not programmed Atxmega128A1. Remove all four jumpers of the Alvidi module (RS232). The MAX3232 on the module will be isolated. Connect the TXD1 and RXD1 from the WIZFI210 to the second RS232 of the Alvidi module. Connect a terminal program, 115200 baud and power the board. If all is connected right you will get the information from the WIZFI210. Start the WizSmartScript and there you go.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:rs232_trick.jpg|thumb|450px|center]]&lt;br /&gt;
&lt;br /&gt;
=== SW part&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
For the next part, Bascom, Android and Wireless, '''all credit goes to HKipnik alias HKBascom alias Heiko'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First some pictures: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;gallery widths=340px heights=340&amp;gt;&lt;br /&gt;
File:Android.png&lt;br /&gt;
File:7inch_android.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this example the WIZFI210 has got IP-address 192.168.0.250&lt;br /&gt;
&lt;br /&gt;
And my Samsung Galaxy Note II has IP-address 192.168.0.237&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Port 5000 is used to send UDP-traffic from the 7 inch display board to the Android SmartPhone.&lt;br /&gt;
&lt;br /&gt;
Port 8000 is used to send UDP-traffic from SmartPhone to 7 inch display.&lt;br /&gt;
&lt;br /&gt;
All wireless. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the software for the 7 inch display board and for the Android Smartphone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first in Bascom-AVR and the second in Basic4Android.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the subdirectory bilder, the images&lt;br /&gt;
&lt;br /&gt;
In the subdirectory wizfi210 a small testprogram and some more info we got from Heiko.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What we did change was the touchscreen routine. We left the old one from Heiko remarked, and put in our own routine.&lt;br /&gt;
&lt;br /&gt;
Seems there are different displays with different touchscreens.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File 1:''' [[Media:7inch_wizfi210.zip|Download 7inch_wizfi210.zip]]&lt;br /&gt;
&lt;br /&gt;
'''File 2:''' [[Media:Test_udp_wizfi210.zip‎|Download Test_udp_wizfi210.zip‎]]&lt;br /&gt;
&lt;br /&gt;
== DHT11 sensor ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DHT11 sensor on location JP1 and from www.AVRprojects.ru we have download software to read the DHT11. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Dht11 7inch.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now we got the time and date from the DS1338-33 and temperature and humidity from a DHT11. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time to make a WordClock. Fontsize 25x32. So on a 800 x 480 pixel display we can make 13 lines of 31 characters. &lt;br /&gt;
&lt;br /&gt;
It is a running clock, the text is refreshed three times a minute so it is very dynamic. &lt;br /&gt;
&lt;br /&gt;
In real the blue is less intensive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Wordclock.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
== iTrax300 GPS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The next step is the iTrax300 GPS module. It is the WIZFI210 or the Itrax300 GPS module, they are on the same serial lines. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;gallery widths=&amp;quot;260px&amp;quot; heights=&amp;quot;260px&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
File:itrax2.jpg&lt;br /&gt;
File:itrax300x.jpg&lt;br /&gt;
File:rs232trick_itrax.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Same trick to connect a PC direct to the iTrax300 module &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:itrax300.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the output of the module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using a switch mode regulator ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a switched mode regulator available which is pin compatible with the 7805 regulator and a similar size. The 7805 regulator is supposed to be roughly 55% efficient where as the switch mode regulator TSR 1-2450 is supposed to be roughly 95% efficient. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Tsr_1-2450_x2.jpg|thumb|center]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Due to the backlight of the display, the 7805 got warm/hot, with the TSR 1-2450 no problem.&lt;br /&gt;
&lt;br /&gt;
== Video&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|3BdFNtNBRlM |500|center|WizFi210 test UDP and Bascom (by HKipnik)}}&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|dpdl6lNeB1Y |500|center|SSD1963 7zoll mit ATxmega128A1 (by HKipnik)}}&lt;br /&gt;
&lt;br /&gt;
== Authors&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&amp;lt;div&amp;gt;Ben&amp;amp;nbsp;Zijlstra and Theo Kleijn designed the board and initial software.&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;HKipnik made various software extensions such as the WIFI.&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/File:Tsr_1-2450_x2.jpg</id>
		<title>File:Tsr 1-2450 x2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/File:Tsr_1-2450_x2.jpg"/>
				<updated>2013-04-03T15:28:12Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/7_inch_display_board</id>
		<title>7 inch display board</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/7_inch_display_board"/>
				<updated>2013-04-03T15:27:24Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: /* iTrax300 GPS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin-left: 40px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[7 inch display board#WizFi210|WIZFI210 Wireless network]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;ITRAX300 GPS&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;BTM220 Class 1 bluetooth&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Bluegiga WT41 1 kilometer bluetooth&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SCP1000 barometer&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;DS1337 clock with battery backup&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;RS232&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Alvidi AVRB Atxmega128A1 module&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;7 inch display&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;FT232RL USB&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
[[File:7inch display5.jpg|thumb|center|450px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;gallery widths=&amp;quot;160px&amp;quot; heights=&amp;quot;160px&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
File:7inch_display1.jpg&lt;br /&gt;
File:7inch_display2.jpg&lt;br /&gt;
File:7inch_display3.jpg&lt;br /&gt;
File:7inch_display4.jpg&lt;br /&gt;
File:7inch_display6.jpg&lt;br /&gt;
File:7inch_display7.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Source code ==&lt;br /&gt;
&lt;br /&gt;
Include a PDF-file for the 7 inch display and some pictures for the Alvidi on-board SD-card&amp;amp;nbsp;:&amp;amp;nbsp;[[Media:Ssd1963 7inch.zip|Download Ssd1963_7inch.zip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Example of main program:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'&lt;br /&gt;
' Copyright Michael Koecher aka six1 8/2010&lt;br /&gt;
' -&amp;gt; http://www.six1.net/ michael@koecher-web.de&lt;br /&gt;
'&lt;br /&gt;
' http://creativecommons.org/licenses/by-sa/3.0/de/&lt;br /&gt;
' Original nur von http://bascom-forum.de&lt;br /&gt;
' Sie dürfen:&lt;br /&gt;
'&lt;br /&gt;
' * das Werk bzw. den Inhalt vervielfältigen, verbreiten und öffentlich zugänglich machen&lt;br /&gt;
'&lt;br /&gt;
' * Abwandlungen und Bearbeitungen des Werkes bzw. Inhaltes anfertigen&lt;br /&gt;
'&lt;br /&gt;
' Zu Den Folgenden Bedingungen:&lt;br /&gt;
'&lt;br /&gt;
' * Namensnennung.&lt;br /&gt;
' Sie müssen den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.&lt;br /&gt;
'&lt;br /&gt;
' * Keine kommerzielle Nutzung.&lt;br /&gt;
' Dieses Werk darf nicht für kommerzielle Zwecke verwendet werden.&lt;br /&gt;
'&lt;br /&gt;
' * Weitergabe unter gleichen Bedingungen.&lt;br /&gt;
' Wenn Sie das lizenzierte Werk bzw. den lizenzierten Inhalt bearbeiten&lt;br /&gt;
' oder in anderer Weise erkennbar als Grundlage für eigenes Schaffen verwenden,&lt;br /&gt;
' dürfen Sie die daraufhin neu entstandenen Werke bzw. Inhalte nur&lt;br /&gt;
' unter Verwendung von Lizenzbedingungen weitergeben, die mit denen&lt;br /&gt;
' dieses Lizenzvertrages identisch oder vergleichbar sind.&lt;br /&gt;
'&lt;br /&gt;
' Wobei gilt:&lt;br /&gt;
'&lt;br /&gt;
' * Verzichtserklärung&lt;br /&gt;
' Jede der vorgenannten Bedingungen kann aufgehoben werden, sofern Sie&lt;br /&gt;
' die ausdrückliche Einwilligung des Rechteinhabers dazu erhalten.&lt;br /&gt;
'&lt;br /&gt;
' * Sonstige Rechte&lt;br /&gt;
' Die Lizenz hat keinerlei Einfluss auf die folgenden Rechte:&lt;br /&gt;
' - Die gesetzlichen Schranken des Urheberrechts und sonstigen&lt;br /&gt;
' Befugnisse zur privaten Nutzung&lt;br /&gt;
' - Das Urheberpersönlichkeitsrecht des Rechteinhabers&lt;br /&gt;
' - Rechte anderer Personen, entweder am Lizenzgegenstand selber oder&lt;br /&gt;
' bezüglich seiner Verwendung, zum Beispiel Persönlichkeitsrechte abgebildeter Personen.&lt;br /&gt;
'&lt;br /&gt;
' Hinweis&lt;br /&gt;
'&lt;br /&gt;
' Im Falle einer Verbreitung müssen Sie anderen alle Lizenzbedingungen&lt;br /&gt;
' mitteilen, die für dieses Werk gelten. Am einfachsten ist es,&lt;br /&gt;
' einen Link auf http://creativecommons.org/licenses/by-sa/3.0/de/ einzubinden.&lt;br /&gt;
'&lt;br /&gt;
'&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'auf Treiber IC SSD1963 geändert 26.11.2011&lt;br /&gt;
'10.09.2012 angepast für Display Typ AT070TN90&lt;br /&gt;
'Hkipnik@aol.com&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;xm128a1def.dat&amp;quot;&lt;br /&gt;
$hwstack = 200&lt;br /&gt;
$swstack = 200&lt;br /&gt;
$framesize = 500&lt;br /&gt;
$crystal = 32000000&lt;br /&gt;
&lt;br /&gt;
Config Osc = Enabled , 32mhzosc = Enabled&lt;br /&gt;
Config Sysclock = 32mhz '--&amp;gt; 32MHz&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
 Config Osc = Disabled , 32mhzosc = Enabled&lt;br /&gt;
 Osc_pllctrl = &amp;amp;B10_0_00100&lt;br /&gt;
 Do&lt;br /&gt;
 Loop Until Osc_status.1 = 1 'Check if RC2MRDY is ready '&lt;br /&gt;
 'enable PLL&lt;br /&gt;
 Set Osc_ctrl.4 'PLL enable&lt;br /&gt;
 'configure the systemclock&lt;br /&gt;
 Config Sysclock = Pll , Prescalea = 1 , Prescalebc = 1_1 'use PLL&lt;br /&gt;
&lt;br /&gt;
 Stop Watchdog&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'Touch Interrupt&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
Const Use_touch = 1 'use Touch = 1&lt;br /&gt;
#if Use_touch = 1&lt;br /&gt;
 Config Pinf.0 = Input 'Set PINF.4 as Input&lt;br /&gt;
 'Because of the activated Pullup the PIN Level is high and there is a falling edge when switch is pressed&lt;br /&gt;
 Config Xpin = Portf.0 , Outpull = Pullup , Sense = Falling 'enable Pull up and reaction on falling edge&lt;br /&gt;
&lt;br /&gt;
 Portf_int0mask = &amp;amp;B0000_0001 'include PIN0 in INT0 Mask&lt;br /&gt;
 Portf_intctrl = &amp;amp;B0000_00_01&lt;br /&gt;
 '^ 'Low Level INT0 Interrupt&lt;br /&gt;
&lt;br /&gt;
 Dim Touch_flag As Bit&lt;br /&gt;
 Touch_flag = 0&lt;br /&gt;
 On Portf_int0 Touch_int&lt;br /&gt;
 Enable Portf_int0 , Lo&lt;br /&gt;
#endif&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 Config Priority = Static , Vector = Application , Lo = Enabled , Med = Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Config Com5 = 57600 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8&lt;br /&gt;
 Open &amp;quot;COM5:&amp;quot; For Binary As #1&lt;br /&gt;
&lt;br /&gt;
 Print #1 , &amp;quot;Graphic 800x480&amp;quot;&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 $include &amp;quot;SSD1963_declarations.inc&amp;quot;&lt;br /&gt;
 $include &amp;quot;SSD1963__sd-card_declarations.inc&amp;quot;&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 Call Sdcard_initialize()&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 'use for Demo&lt;br /&gt;
 Dim Farbe As Word , Countx As Word , Xx1 As Word , Xx2 As Word , Yy1 As Word , Yy2 As Word , Penwidth As Byte , Box_fill As Byte , Show_border As Byte , Radius As Word&lt;br /&gt;
 Dim Help_str As String * 10&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
'Start SSD1963&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
 Call Ssd1963_init()&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
 Enable Interrupts&lt;br /&gt;
&lt;br /&gt;
'*** MAIN **********************************************************************&lt;br /&gt;
 Do&lt;br /&gt;
 Call Lcd_clear(blue)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Clear area&amp;quot; , 230 , 20 , 1 , Yellow , Blue)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear_area(100 , 100 , 200 , 200 , White)&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear_area(1 , 1 , 200 , 200 , White)&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_text( &amp;quot;BMP 800x480 hallo world&amp;quot; , 100 , 224 , 1 , Gold , Black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;BMP 800x480 hallo world&amp;quot; , 20 , 20 , 2 , Yellow , Red)&lt;br /&gt;
 Wait 1&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;frau5.bmp&amp;quot; , 200 , 0) '24Bit&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;tieger5.bmp&amp;quot; , 1 , 0) '24Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;24Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;tieg8bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;8Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;frau5.bmp&amp;quot; , 200 , 0) '24Bit&lt;br /&gt;
 Wait 1&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;pic18bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;8Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;pic28bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;8Bit Bmp&amp;quot; , 310 , 100 , 1 , Red , Transparent)&lt;br /&gt;
&lt;br /&gt;
 Wait 3&lt;br /&gt;
 Call Lcd_negate(0)&lt;br /&gt;
 Call Lcd_text_trans( &amp;quot;negate&amp;quot; , 310 , 200 , 1 , Red , Transparent)&lt;br /&gt;
 Wait 3&lt;br /&gt;
 Call Lcd_negate(1)&lt;br /&gt;
&lt;br /&gt;
 Wait 3&lt;br /&gt;
 Call Lcd_clear(red)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;test8bit.bmp&amp;quot; , 0 , 0) '8Bit&lt;br /&gt;
 Wait 1&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(blue)&lt;br /&gt;
&lt;br /&gt;
#if Use_touch = 1&lt;br /&gt;
 Call Lcd_box(700 , 420 , 790 , 470 , Red , White , 1 , 1)&lt;br /&gt;
 Call Lcd_box(100 , 100 , 105 , 105 , Red , White , 1 , 1)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Touch me&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;next&amp;quot; , 720 , 435 , 2 , Yellow , Red)&lt;br /&gt;
 Do&lt;br /&gt;
 If Touch_flag = 1 Then&lt;br /&gt;
&lt;br /&gt;
 Touchx = 0&lt;br /&gt;
 Touchy = 0&lt;br /&gt;
 Call Lcd_read_touch()&lt;br /&gt;
&lt;br /&gt;
 Select Case Touchx&lt;br /&gt;
 Case 570 To 630 :&lt;br /&gt;
 If Touchy &amp;gt; 5 And Touchy &amp;lt; 65 Then&lt;br /&gt;
 Ende = 1&lt;br /&gt;
 End If&lt;br /&gt;
 End Select&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 If Ende = 1 Then&lt;br /&gt;
 Ende = 0&lt;br /&gt;
 Exit Do&lt;br /&gt;
 End If&lt;br /&gt;
 Touch_flag = 0&lt;br /&gt;
 End If&lt;br /&gt;
&lt;br /&gt;
 Loop&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;LINE&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Xx1 = Rnd(740)&lt;br /&gt;
 Xx2 = Rnd(740)&lt;br /&gt;
 Yy1 = 90 + Rnd(300)&lt;br /&gt;
 Yy2 = 90 + Rnd(300)&lt;br /&gt;
 Penwidth = Rnd(4)&lt;br /&gt;
 Penwidth = Rnd(4)&lt;br /&gt;
 Call Lcd_line(xx1 , Yy1 , Xx2 , Yy2 , Penwidth , Color_array(farbe))&lt;br /&gt;
 Next&lt;br /&gt;
&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;BOX FILL&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = Rnd(740)&lt;br /&gt;
 Xx2 = Rnd(740)&lt;br /&gt;
 Yy1 = 90 + Rnd(300)&lt;br /&gt;
 Yy2 = 90 + Rnd(300)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Box_fill = Rnd(100)&lt;br /&gt;
 If Box_fill &amp;lt; 50 Then Box_fill = 0&lt;br /&gt;
 Show_border = Rnd(100)&lt;br /&gt;
 If Show_border &amp;lt; 70 Then Show_border = 0&lt;br /&gt;
 Call Lcd_box(xx1 , Yy1 , Xx2 , Yy2 , Color_array(farbe) , White , Box_fill , 1)&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;BOX&amp;quot; , 390 , 10 , 2 , Yellow , Black)&lt;br /&gt;
&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = Rnd(740)&lt;br /&gt;
 Xx2 = Rnd(740)&lt;br /&gt;
 Yy1 = 90 + Rnd(300)&lt;br /&gt;
 Yy2 = 90 + Rnd(300)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Call Lcd_box(xx1 , Yy1 , Xx2 , Yy2 , White , Color_array(farbe) , 0 , 1)&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Circle&amp;quot; , 370 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = 40 + Rnd(640)&lt;br /&gt;
 Yy1 = 20 + Rnd(400)&lt;br /&gt;
 Radius = Rnd(50)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Call Lcd_drawcircle(xx1 , Yy1 , Radius , 100 , 2 , Color_array(farbe))&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Call Lcd_text( &amp;quot;Circle Fill&amp;quot; , 370 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 For Countx = 1 To 100&lt;br /&gt;
 Xx1 = 50 + Rnd(540)&lt;br /&gt;
 Yy1 = 80 + Rnd(300)&lt;br /&gt;
 Radius = Rnd(50)&lt;br /&gt;
 Farbe = Rnd(10)&lt;br /&gt;
 Call Lcd_fill_circle(xx1 , Yy1 , Radius , Color_array(farbe))&lt;br /&gt;
 Next&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_text( &amp;quot;BMP 320x240&amp;quot; , 330 , 10 , 2 , Yellow , Black)&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;sylt1.bmp&amp;quot; , 240 , 100)&lt;br /&gt;
 Wait 1&lt;br /&gt;
 Call Lcd_draw_bmp( &amp;quot;tieger5.bmp&amp;quot; , 0 , 0)&lt;br /&gt;
&lt;br /&gt;
 Call Lcd_setscrollarea(0 , 480 , 0)&lt;br /&gt;
 For Countx = 0 To 479&lt;br /&gt;
 Call Lcd_scroll(countx)&lt;br /&gt;
 Waitms 2&lt;br /&gt;
 Next&lt;br /&gt;
 For Countx = 479 To 0 Step -1&lt;br /&gt;
 Call Lcd_scroll(countx)&lt;br /&gt;
 Waitms 2&lt;br /&gt;
 Next&lt;br /&gt;
&lt;br /&gt;
 Wait 2&lt;br /&gt;
 Call Lcd_clear(black)&lt;br /&gt;
 Loop&lt;br /&gt;
End&lt;br /&gt;
#if Use_touch = 1&lt;br /&gt;
Touch_int:&lt;br /&gt;
 Touch_flag = 1&lt;br /&gt;
 ' Print #1 , &amp;quot;Touch&amp;quot;&lt;br /&gt;
Return&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
'*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
 $include &amp;quot;SSD1963__sd-card_routines.inc&amp;quot;&lt;br /&gt;
 $include &amp;quot;SSD1963_functions.inc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 $include &amp;quot;Font12x16.font&amp;quot;&lt;br /&gt;
 $include &amp;quot;font25x32.font&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DS1338-33 clock ==&lt;br /&gt;
&lt;br /&gt;
Put a DS1338-33 clock IC on the board. It is the 3,3 volts 1307.&amp;amp;nbsp;&amp;lt;br/&amp;gt;Got some help to get soft I2c running, the command $forcesofti2c did the trick. And if you study the history.txt files of the Bascom-AVR updates, you will find this command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:7inch DS1338 33.jpg|thumb|center|400px|7inch DS1338 33.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And here the software, with on top a little scan to check if the clock can be found on the soft i2c bus &amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
$regfile = &amp;quot;xm128a1def.dat&amp;quot; &lt;br /&gt;
$hwstack = 200 &lt;br /&gt;
$swstack = 200 &lt;br /&gt;
$framesize = 500 &lt;br /&gt;
$crystal = 32000000 &lt;br /&gt;
&lt;br /&gt;
Config Osc = Enabled , 32mhzosc = Enabled &lt;br /&gt;
Config Sysclock = 32mhz &lt;br /&gt;
&lt;br /&gt;
Config Osc = Disabled , 32mhzosc = Enabled &lt;br /&gt;
Osc_pllctrl = &amp;amp;B10_0_00100 &lt;br /&gt;
Do &lt;br /&gt;
Loop Until Osc_status.1 = 1 'Check if RC2MRDY is ready ' &lt;br /&gt;
'enable PLL &lt;br /&gt;
Set Osc_ctrl.4 'PLL enable &lt;br /&gt;
'configure the systemclock &lt;br /&gt;
Config Sysclock = Pll , Prescalea = 1 , Prescalebc = 1_1 'use PLL &lt;br /&gt;
&lt;br /&gt;
Config Priority = Static , Vector = Application , Lo = Enabled , Med = Enabled &lt;br /&gt;
&lt;br /&gt;
Config Com5 = 57600 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8 &lt;br /&gt;
Open &amp;quot;COM5:&amp;quot; For Binary As #1 &lt;br /&gt;
&lt;br /&gt;
Print #1 , &amp;quot;Start clock&amp;quot; &lt;br /&gt;
&lt;br /&gt;
$forcesofti2c ' with this the software I2C/TWI commands are used when including i2c.lbx &lt;br /&gt;
$lib &amp;quot;i2c.lbx&amp;quot; ' override the normal xmega i2c lib &lt;br /&gt;
&lt;br /&gt;
Dim B As Byte &lt;br /&gt;
Dim Weekday As Byte &lt;br /&gt;
Dim Text As String * 30 &lt;br /&gt;
&lt;br /&gt;
Declare Sub Setdate &lt;br /&gt;
Declare Sub Settime &lt;br /&gt;
Declare Sub Getdatetime &lt;br /&gt;
&lt;br /&gt;
'We use here Virtual port 0 &lt;br /&gt;
Config Vport0 = B ' 'map portB to virtual port0 &lt;br /&gt;
&lt;br /&gt;
Config Scl = Port0 .3 ' Pin to use as SCL (The hardware pin is Pinb.1) &lt;br /&gt;
Config Sda = Port0 .4 ' Pin to use as SDA (The hardware pin is Pinb.0) &lt;br /&gt;
I2cinit ' Bring the Pin's in the proper state &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Print #1 , &amp;quot;Scan start&amp;quot; &lt;br /&gt;
For B = 0 To 254 Step 2 'for all odd addresses &lt;br /&gt;
 I2cstart 'send start &lt;br /&gt;
 I2cwbyte B 'send address &lt;br /&gt;
 If Err = 0 Then 'we got an ack &lt;br /&gt;
 Print #1 , &amp;quot;Slave at : &amp;quot; ; B ; &amp;quot; hex : &amp;quot; ; Hex(b) ; &amp;quot; bin : &amp;quot; ; Bin(b) &lt;br /&gt;
 End If &lt;br /&gt;
 I2cstop 'free bus &lt;br /&gt;
Next &lt;br /&gt;
Print #1 , &amp;quot;End Scan&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Wait 5 ' Bring the Pin's in the proper state &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'DS1338 &lt;br /&gt;
Const Ds1338w = &amp;amp;HD0 ' Adres van de Ds1338 clock &lt;br /&gt;
Const Ds1338r = &amp;amp;HD1 &lt;br /&gt;
&lt;br /&gt;
'Clock &lt;br /&gt;
Config Clock = User &lt;br /&gt;
Config Date = Dmy , Separator = . &lt;br /&gt;
&lt;br /&gt;
$lib &amp;quot;ds1307clock.lib&amp;quot; &lt;br /&gt;
&lt;br /&gt;
'Time$ = &amp;quot;00:07:00&amp;quot; &lt;br /&gt;
'Date$ = &amp;quot;24.02.13&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do &lt;br /&gt;
Call Getdatetime &lt;br /&gt;
Print #1 , _hour &lt;br /&gt;
Print #1 , _min &lt;br /&gt;
Wait 5 &lt;br /&gt;
Loop &lt;br /&gt;
&lt;br /&gt;
End &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'called from ds1307clock.lib &lt;br /&gt;
&lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
' DS1338 Get date-time routine &lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
Getdatetime: &lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338w ' send address &lt;br /&gt;
 I2cwbyte 0 ' start address in 1338 &lt;br /&gt;
&lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338r ' send address &lt;br /&gt;
 I2crbyte _sec , Ack &lt;br /&gt;
 I2crbyte _min , Ack ' MINUTES &lt;br /&gt;
 I2crbyte _hour , Ack ' Hours &lt;br /&gt;
 I2crbyte Weekday , Ack ' Day of Week &lt;br /&gt;
 I2crbyte _day , Ack ' Day of Month &lt;br /&gt;
 I2crbyte _month , Ack ' Month of Year &lt;br /&gt;
 I2crbyte _year , Nack ' Year &lt;br /&gt;
 I2cstop &lt;br /&gt;
 _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour) &lt;br /&gt;
 _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year) &lt;br /&gt;
Return &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
' DS1338 set date routine &lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
Setdate: &lt;br /&gt;
 _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year) &lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338w ' send address &lt;br /&gt;
 I2cwbyte 4 ' starting address in 1338 &lt;br /&gt;
 I2cwbyte _day ' Send Data to SECONDS &lt;br /&gt;
 I2cwbyte _month ' MINUTES &lt;br /&gt;
 I2cwbyte _year ' Hours &lt;br /&gt;
 I2cstop &lt;br /&gt;
Return &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
' DS1338 set time routine &lt;br /&gt;
'------------------------------------------------------------------------------- &lt;br /&gt;
Settime: &lt;br /&gt;
 _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour) &lt;br /&gt;
 I2cstart ' Generate start code &lt;br /&gt;
 I2cwbyte Ds1338w ' send address &lt;br /&gt;
 I2cwbyte 0 ' starting address in 1338 &lt;br /&gt;
 I2cwbyte _sec ' Send Data to SECONDS &lt;br /&gt;
 I2cwbyte _min ' MINUTES &lt;br /&gt;
 I2cwbyte _hour ' Hours &lt;br /&gt;
 I2cstop &lt;br /&gt;
Return &lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WizFi210&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
=== HW part&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
HKipnik made an example how to make an UDP connection between the 7 inch display board and a Android SmartPhone.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Here some pictures of the WizFi210 with a DIY-antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:Wizfi210 5.jpg|thumb|center|400px|Wizfi210 5.jpg]]&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;250px&amp;quot; heights=&amp;quot;250px&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
File:Wizfi210_1.jpg‎|Antenna, 31 mm, with an cap.&lt;br /&gt;
File:Wizfi210_2.jpg‎|Antenna, shrinked &lt;br /&gt;
File:Wizfi210_3.jpg‎|The WIZFI210&lt;br /&gt;
File:Wizfi210_4.jpg‎|The WIZFI210 in detail &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Config part&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
To configure the WIZFI210 with WPA or WEP key, with DHCP or fixed IP and to have it auto-connect a level converter RS232 from PC straight to the WIZFI210&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the WIZSmartScript from the Wiznet site&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;gallery widths=&amp;quot;240px&amp;quot; heights=&amp;quot;240px&amp;quot; align=&amp;quot;center&amp;quot; perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:Wizfi210_1c.jpg‎|The ZIP-file extracted&lt;br /&gt;
File:Wizfi210_2c.jpg‎|Start the WIZSmartScript program, baudrate 115200 &lt;br /&gt;
File:Wizfi210_3c.jpg‎|Find WizFI and Set Command Mode &lt;br /&gt;
File:Wizfi210_4c.jpg‎|Do an Access Point scan and select the Access Point to associate with &lt;br /&gt;
File:Wizfi210_5c.jpg‎|Select the WiFi security. In this case WPA with the Passphrase 'wisclub1'&lt;br /&gt;
File:Wizfi210_6c.jpg‎|Give the module a static IP address (or if you want, give it a DHCP IP address) &lt;br /&gt;
File:Wizfi210_7c.jpg‎|Here you can change the Serial port options&lt;br /&gt;
File:Wizfi210_8c.jpg‎|For this example we will be using UDP traffic to a PC in our network that has the IP address 192.168.0.237 listening to port 5000&lt;br /&gt;
File:Wizfi210_9c.jpg‎|Select an save option. Here you create an startup profile for the WizFi210 module&lt;br /&gt;
File:Wizfi210_10c.jpg‎|You enable auto connect on the next reboot and enable UART messages&lt;br /&gt;
File:Wizfi210_11c.jpg‎|We saved it with the name benshobbycorner and here an example of a script &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
With a not programmed Atxmega128A1. Remove all four jumpers of the Alvidi module (RS232). The MAX3232 on the module will be isolated. Connect the TXD1 and RXD1 from the WIZFI210 to the second RS232 of the Alvidi module. Connect a terminal program, 115200 baud and power the board. If all is connected right you will get the information from the WIZFI210. Start the WizSmartScript and there you go.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:rs232_trick.jpg|thumb|450px|center]]&lt;br /&gt;
&lt;br /&gt;
=== SW part&amp;lt;br/&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
For the next part, Bascom, Android and Wireless, '''all credit goes to HKipnik alias HKBascom alias Heiko'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First some pictures: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;gallery widths=340px heights=340&amp;gt;&lt;br /&gt;
File:Android.png&lt;br /&gt;
File:7inch_android.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this example the WIZFI210 has got IP-address 192.168.0.250&lt;br /&gt;
&lt;br /&gt;
And my Samsung Galaxy Note II has IP-address 192.168.0.237&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Port 5000 is used to send UDP-traffic from the 7 inch display board to the Android SmartPhone.&lt;br /&gt;
&lt;br /&gt;
Port 8000 is used to send UDP-traffic from SmartPhone to 7 inch display.&lt;br /&gt;
&lt;br /&gt;
All wireless. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the software for the 7 inch display board and for the Android Smartphone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first in Bascom-AVR and the second in Basic4Android.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the subdirectory bilder, the images&lt;br /&gt;
&lt;br /&gt;
In the subdirectory wizfi210 a small testprogram and some more info we got from Heiko.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
What we did change was the touchscreen routine. We left the old one from Heiko remarked, and put in our own routine.&lt;br /&gt;
&lt;br /&gt;
Seems there are different displays with different touchscreens.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''File 1:''' [[Media:7inch_wizfi210.zip|Download 7inch_wizfi210.zip]]&lt;br /&gt;
&lt;br /&gt;
'''File 2:''' [[Media:Test_udp_wizfi210.zip‎|Download Test_udp_wizfi210.zip‎]]&lt;br /&gt;
&lt;br /&gt;
== DHT11 sensor ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DHT11 sensor on location JP1 and from www.AVRprojects.ru we have download software to read the DHT11. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Dht11 7inch.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now we got the time and date from the DS1338-33 and temperature and humidity from a DHT11. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time to make a WordClock. Fontsize 25x32. So on a 800 x 480 pixel display we can make 13 lines of 31 characters. &lt;br /&gt;
&lt;br /&gt;
It is a running clock, the text is refreshed three times a minute so it is very dynamic. &lt;br /&gt;
&lt;br /&gt;
In real the blue is less intensive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Wordclock.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
== iTrax300 GPS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The next step is the iTrax300 GPS module. It is the WIZFI210 or the Itrax300 GPS module, they are on the same serial lines. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;gallery widths=&amp;quot;260px&amp;quot; heights=&amp;quot;260px&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
File:itrax2.jpg&lt;br /&gt;
File:itrax300x.jpg&lt;br /&gt;
File:rs232trick_itrax.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Same trick to connect a PC direct to the iTrax300 module &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:itrax300.jpg|thumb|400px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here the output of the module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using a switch mode regulator ==&lt;br /&gt;
&lt;br /&gt;
== Video&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|3BdFNtNBRlM |500|center|WizFi210 test UDP and Bascom (by HKipnik)}}&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|dpdl6lNeB1Y |500|center|SSD1963 7zoll mit ATxmega128A1 (by HKipnik)}}&lt;br /&gt;
&lt;br /&gt;
== Authors&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&amp;lt;div&amp;gt;Ben&amp;amp;nbsp;Zijlstra and Theo Kleijn designed the board and initial software.&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;HKipnik made various software extensions such as the WIFI.&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category:Projects]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/File:Rs232trick_itrax.jpg</id>
		<title>File:Rs232trick itrax.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/File:Rs232trick_itrax.jpg"/>
				<updated>2013-04-03T15:21:57Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mcselec.com/File:Itrax300x.jpg</id>
		<title>File:Itrax300x.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/File:Itrax300x.jpg"/>
				<updated>2013-04-03T15:21:36Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>