<?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=Mcselec</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=Mcselec"/>
		<link rel="alternate" type="text/html" href="https://wiki.mcselec.com/Special:Contributions/Mcselec"/>
		<updated>2026-06-14T05:41:13Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.18.6</generator>

	<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-03-04T14:12:07Z</updated>
		
		<summary type="html">&lt;p&gt;Mcselec: /* Authors */&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;WIZFI210 Wireless network&amp;amp;nbsp;&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;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;
&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;[[File:Ssd1963 7inch.zip|File: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]]&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;
== Video ==&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;
&lt;br /&gt;
&lt;br /&gt;
== Authors&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&amp;lt;div&amp;gt;''Ben&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-size: 10pt&amp;quot;&amp;gt;Zijlstra and Theo Kleijn&amp;lt;/span&amp;gt;'' 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>Mcselec</name></author>	</entry>

	</feed>