PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wecker mit 320x240 Touch, ATmega 2560, Ethernet, MMC und MP3



tzlo
26.02.2008, 19:46
Hi!

So ich möchte euch mein Projekt vorstellen^^:

Ich baue einen "Wecker", der ein 320x240 Touchscreen Display, Ethernet, einen ATmega 2560, 1024 Kbyte SRAM, 60Kbyte EPROM eine MMC Card und einen Hardware MP3 Decoder besitzt. Der Wecker wird eine Schalterlose Front haben, die ca 1 cm breiter als die Displayoberfläche ist und nur die Sleep Taste wird aus Plexi sein.

Die Plexitaste wird poliert und mit 2 Ultrahellen Blauen LED's versehen, die beim drücken auf faden(PWM).

Ein ATmega 8 wird an das Ethernet modul ( irgend ein Realtek) angeschlossen, und soll die Uhrzeit sowie das Datum aus dem Internet holen. Außerdem sollte man über ein User Interface den Wecker konfigurieren können.

Die MP3 Funktion wird so implementiert, das ich über das UI (Display) den MP3 Decoder steuern kann (Play usw.) und er soll von der MMC Karte die MP3 Dateien abgreifen. ALs Lautsprecher werden 2x 3W 8Ω Lautsprecher dienen müssen, sie werden über eine Vorverstärker angesteuert.

Eine weitere Besonderheit wird das UI, welches auf dem 12x9cm großen Display dargestellt werden soll. Es soll unten einen Home Button haben, mit dem man(n) wieder auf die Startseite kommt und die Menüs sollen so aufgebaut werden, das man(n) sie gut mit dem Finger bedienen kann.

Die Displayhintergrundbeleuchtung wird über einen PWM Kanal gesteuert werden, denn es ist nicht besonders angenehm, wenn man im dunkeln auf ein superhelles Display guckt. Der Lichtsensor wird feststellen, ob es hell oder dunkel ist. Wenn es dunkel sein sollte, wird die Hintergrungbeleuchtung nach 30sec. langsam ausgefadet. Ist es hell, so wird keine Hintergrungbeleuchtung eingeschaltet, denn das Display solte problemlos aubgelesen werden können.


Ich hoffe ich mache euch mit diesem hoffentlich Informatieven Beitrag nicht zu viel Arbeit.

Noch ein paar Picz:
http://ledsee.com/components/com_virtuemart/shop_image/product/397030610ffbd35e9aa5c4b8135df887.jpg
http://shop.embedit.de/gen_image.php?img=mega2560.jpg&type=fv
http://www.sparkfun.com/commerce/images/VS1011E-SOIC.jpg
http://parts.digikey.com/images/6/67/92/4.jpg
http://www.csd-electronics.de/de/groups/g_156/images/ipic_1354.jpg

Greetz <tzlo>

sloti
26.02.2008, 22:08
Hi,

was willst du denn überhaupt wissen oder willst du blos so Meinungen und Anregungen haben? Mich würde jetzt mal interessieren wie du einen Touchscreen ansprechen und auswerten willst.


mfg
Erik

corone
27.02.2008, 00:18
mich interessiert grad mal noch, warum n mega2560...

von den ports her sollte ein 32er locker reichen. brauchst du auf dem teil aus irgend einem grund so viel speicher oder weshalb?

Ratber
27.02.2008, 01:04
wie jetzt ?? 40 min und keine aw??


Ähhh...ja und ?

Meinst du du bist der Einizge/Erste der sich nen "geilen" Wecker basteln möchte ?

Ankündigungen gabs schon viele und noch mehr Leute haben sich Gedanken in dieser richtung gemacht ohne es zu verkünden.

Etwas weniger haben es auch angefangen und dann aufgegeben.

Andere haben erstmal abgespeckt und danach ebenfalls aufgegeben.

Einige haben es zuende gebracht und sind mehr oder weniger zufrieden damit.

Mancher hat sein Werk sogar vorgestellt und einige es sogar zum nachbau freigegeben.







Der berümte "Wecker" auf Controllerbasis ist ein Standardprojekt neben Heizungssteuerungen, Lichtersteuerungen aller Art und noch einigen anderen Sachen.

Wir wünschen dir gutes Gelingen aber erwarte bitte nicht unbedingt tosenden Beifall für ungelegte Eier ;)


Apropos "Wecker":

Eines meiner ersten Projekte war ein solcher Wecker mit Pepp.
Weil ich schon einige Jahre gebastelt hatte und auch Beruflich in der Materie stecke gabs bei mir nur wenig Probleme mit der elektrischen Umsetzung, eher mit der Programierung.
Triebfeder war damals das Problem das ich in Wechselschicht Arbeite und die allermeisten kaufbaren Wecker kannten nur eine oder mehrere Weckzeiten aber leider keine funktion dafür diese wöchentlich zu wechseln.
Daher wuchs in mir die Idee mir eben selber einen zu Stricken.
die Grundfunktion einer Uhr mit Weckfunktion war schnell erstellt.
Hinzu kam dann ein Radio (Immer nur Piep...Piep ist schnell langweilig) und kurz drauf MP3 von der SD-Karte, DCF (Nie mehr Stellen, nie mehr verpennen weil nachts mal der Saft weg war), eine dem Umgebungslicht angepasste Anzeige die immer lesbar ist und dennoch Nachts nicht blendet, diverse Zusatzfunktionen wie Schlummertaste, Weckwiederholung und noch etliches mehr was mir jetzt nicht einfällt.
Natürlich ist auch viel spielerei dabei weil ich gerne Experimentiere.
Zb. Urlaubskalender wo ich nicht geweckt werde, einige "Einmalalarme, Eine Alarmfunktion für Gelegenheiten die ich unmöglich verpassen darf und mit maximalem Lärm geweckt werde usw.
Angefangen hats mit einem Tiny26 und läuft jetzt auf einem M128 mit grafischem Display.
Die letzte Revision läuft seit 2005 neben meinem Bett ohne Macken (Doch, eine Macke hat er noch.Das Gehäuse ist nicht ganz Resonanzfrei.Manchmal schepperts mit.Fixe ich beim nächsten mal).
Veröffentlich hab ich es nie und habe es auch nicht vor.
Wer sowas braucht und selber bastelt kann sich ihn auch selber basteln.
Er kann dabei sehr gut lernen.


Wie gesagt, klingt gut was du vorhast aber mach erstmal fertig, stelle es dann vor und dann wirst du sicher auch freudige Glückwünsche ernten (Auch von mir)



@Corone

Zuviel Speicher ist besser als zuwenig und voll bekommt man jeden. :D

tzlo
27.02.2008, 06:45
Aolso erstmal Danke für die Antworten.

Brauche den 2560, weil ich viele Menüs zum Einstellen usw. brauche. Da ich die Menüs GArafisch machen werde, brauche ich viiiiiiel speicher.

@ Ratber : Sehe ich genauso

Und der Schaltplan wird gerade noch bearbeitet, weil ich erst nen Mega128 geplant habe, aber als ich die Menüs und den Code fertig hatte, habe ich gesehen, dass ich nur mit gaaaanz vie externen eeprom hinkomme, daher nehme ich dnen 2560.

Natürlich bleibt möglichst alles in smd

Andun
27.02.2008, 07:29
Was für Möglichkeiten hast du denn bei der Platinenbestückung und überhaupt auch der Herstellung, dass du auf SMD setzt?

Andun

Ratber
27.02.2008, 10:08
@Andun


SMD ist auch Privat kein Beinbruch.
Natürlich ändert sich das Werkzeug ein kleinwenig (Nichts dramatisches.Lupe,fluxxer,Pinzette,ruhige Hand usw.) und die Lötgewohnheiten ebenfalls etwas aber wenn man bereit ist sich anzupassen wird man mit einer wesentlich kompakteren Schaltung belohnt (Beim Mega 256 muß man eh dahin weils den nicht als THT gibt) und der Möglichkeit Bauteile verwenden zu können die es als THT nicht gibt.(Also meist neuere mit interessanten funktionen)

BlackDevil
27.02.2008, 10:14
@Andun


SMD ist auch Privat kein Beinbruch.
Natürlich ändert sich das Werkzeug ein kleinwenig (Nichts dramatisches.Lupe,fluxxer,Pinzette,ruhige Hand usw.) und die Lötgewohnheiten ebenfalls etwas aber wenn man bereit ist sich anzupassen wird man mit einer wesentlich kompakteren Schaltung belohnt (Beim Mega 256 muß man eh dahin weils den nicht als THT gibt) und der Möglichkeit Bauteile verwenden zu können die es als THT nicht gibt.(Also meist neuere mit interessanten funktionen)

Richtig und SMD gibts in zig Größen. Von viel zu Klein für Handbetrieb bis Lächerlich groß für ein kleines Bauteil ;)

Ich bin gespannt wie das Projekt weiter geht. Der Enthusiasmus gefällt mir - mal schauen wies weiter geht :mrgreen:

In welcher Sprache Programmierst du? Würde mich mal Interessieren wie du dann die Menüs Codest

tzlo
27.02.2008, 15:26
@ BlackDevil: ich code in ASM, C und BAsic. Aber für dieses Projekt werde ich wohl in C coden.

Richtig SMD Löten ist nicht schwer, wenn man das richtige Werkzeug hat.
Ich persöhnlich bevorzuge diese SMD Station, die setze ich nämlich auch ein: http://picture.yatego.com/images/3f8bcf6b78da39.2/aoyue968.jpg
Kostet "nur" 120 euro, hat dafür aber ne lötrauch absaugeanlage und reflow fön.

Die Platine für dieses Projekt werde ich wohl fertigen lassen, weil ich eine 2 seitige brauch.

tzlo
27.02.2008, 15:41
@Andun


SMD ist auch Privat kein Beinbruch.
Natürlich ändert sich das Werkzeug ein kleinwenig (Nichts dramatisches.Lupe,fluxxer,Pinzette,ruhige Hand usw.) und die Lötgewohnheiten ebenfalls etwas aber wenn man bereit ist sich anzupassen wird man mit einer wesentlich kompakteren Schaltung belohnt (Beim Mega 256 muß man eh dahin weils den nicht als THT gibt) und der Möglichkeit Bauteile verwenden zu können die es als THT nicht gibt.(Also meist neuere mit interessanten funktionen)

Sry für doppelpost

Was ist THT?????

oberallgeier
27.02.2008, 16:37
Hallo alle,

@Andun - einiges zum Projekt ist ja schon seit einiger Zeit definiert:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=345136#345136

und @sloti + corone, dort stehen auch seine Fragen - und Antworten

und die Liste
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=345802#345802
zeigt, das er ja nicht alles einfach übernimmt - die Ratschläge werden zur Kontrolle weitergereicht.

tzlo
27.02.2008, 17:07
das ist nen gaaanz anderes board, das layout habe ich schon verworfen....

achso, und die bauteile habe ich schon bestellt, darum werde ich es auf jeden fall machen. fast 300 euro!! (mit usb progger und platinenmaterial)

ich ätze die platine aberdochnich selber, darum werde ich die platinenmaterialien zurücksenden

Murdoc_mm
27.02.2008, 20:39
Hi,

eine sinnvolle Funktion währe noch die Zimmertür abzufragen/zu überwachen. So nach dem Prinzip wenn nach 10min die Zimmertür nicht aufgegangen ist hat man den Wecker abgestellt und ist wieder eingepennt (passiert mir ganz oft #-o ). Und man kann auch feststellen ob jemand im Zimmer war während man weg ist (für die unter Verfolgungswahn oder strengen Eltern leidenden ist das sicher was).

Damit spart man sich auf jeden Fall die Doppel-Weck-Funktion.

Und wenn man etwas overkill betreiben möchte kann man das sicher auch mit nem Bewegungsmelder machen. Da muss nur aufgepasst werden das die bewegungen im Schlaf ignoriert werden.

Gruß

oberallgeier
27.02.2008, 23:08
... auch mit nem Bewegungsmelder machen. ... die bewegungen im Schlaf ignoriert ...
Ach Murdoc_mm - morgens bewege ich mich sooo langsam, da spräche kein Bewegungsmelder an. Wenn ich wach bin. Im Schlaf vielleicht ...

Ratber
28.02.2008, 00:36
Also ich hätte da keine Probleme mit.

Ich schlafe wie ne Leiche und meine bessere Hälfte sagt das wenn der Wecker klingelt und ich aufstehe es so aussähe als ob man einer Tarantel Feuer unterm Heck gemacht hätte :lol:



@tzlo


Was ist THT?????


THT (through hole technology) (Through-Hole-Technik)
Konventionelle Printbestückung (Durchstecktechnologie) von Hand oder auf der Wellenlötmaschine gelötet.


THD (through hole devices)
Konventionell bedrahtetes Bauteil


SMT (surface mounted technology)
Oberflächenbestückungs-Technologie (neuere miniaturisierte Technik)


SMD (surface mounted devices)
Oberflächenbestückbares Bauteil / Oberflächenmontiertes Bauteil
SMDs sind elektronische Bausteine, die direkt auf eine mit Leiterbahnen versehene Oberfläche gelötet werden.


Steht sinngemäß in jedem Elektroniklexikon

T.J.
28.02.2008, 08:15
Die Idee klingt sehr gut! Das mit den 40min war sicher nur Spaß ;)

Aber Bilder sind durch nichts zu ersetzen...

tzlo
28.02.2008, 14:29
das mit der tür werde ich auf jeden fall einbauen, aber ich hab ne 110db sirene ( piezo 32v 22,8khz) da wird man wach!##



Aber Bilder sind durch nichts zu ersetzen...

wie meinst du denn das??

T.J.
28.02.2008, 14:47
Wenn du was hast zeig uns Bilder! :)

tzlo
28.02.2008, 14:52
UPDATE: Ich werde den DOSonCHIP IC im SMD Format nehmen. Er soll für die SD/MMC Karte zuständig sein.

Die website ist auch interessant, denn sie ht nen flash, wo die funktion gezeigt wird: http://www.dosonchip.com/index.htm

http://www.sparkfun.com/commerce/images/DOSonCHIP-IC.jpg

Zusätzlich wird dieser FM Transmitter eingebaut, damit ich die musik auf die stereoanlage übertragen kann

http://www.sparkfun.com/commerce/images/FMModule-01-L.jpg

Murdoc_mm
29.02.2008, 00:17
Hi,

ich hab noch was interessantes gefunden: Mathematik-Wecker. Guckst du hier: http://www.ni-c.de/2008/02/21/mathematik-wecker/

Wenn der Wecker anfängt zu klingeln muss man erst ne Mathe-Aufgabe lösen um ihn abstellen zu können. Soll auf jeden Fall wach machen und Kopfrechnen trainieren.

Allerdings bin ich mir nicht sicher ob ich jeden morgen ne Mathe-Aufgabe lösen wollte und auch nicht ob ich so früh (wie ich aufsteh) schon zu solch anspruchsvollen Tätigkeiten zu gebrauchen bin #-o .

Gruß

Ratber
29.02.2008, 09:07
Ich glaube auch nicht das der Wecker bei mir lange "ernsthaft" in betrieb wäre.
Ich komme zwar gut hoch aber wie das nun mal so ist.....der Körper ist wach, der Geist kommt in 5 Minuten nach :lol.

Aber trotzdem eine nette Idee.

T.J.
29.02.2008, 09:09
Find die Idee auch sehr geil, müsste man mal ausprobieren. Aber wahrscheinlich findet man das so scheiße, dass man den Wecker nach einigen Tagen wegwirft :D

Ratber
29.02.2008, 09:37
Ja,bei einigen Zeitgenossen kurzer Wandkontakt.... :D

tzlo
29.02.2008, 14:30
@murdoc_mm: find ich gut, kann ich ja zum aktiviren in den einstellungen mit einbauen

tzlo
01.03.2008, 21:23
so, ich habe noch keinen plan vom layout

T.J.
02.03.2008, 09:57
:D

Wie meinst du denn das?

tzlo
02.03.2008, 13:14
layout iss nochnich fertisch xD

Pr0gm4n
09.03.2008, 13:27
Naja, dann mach dich mal auf Ideensuche, viel glück dabei!!


MfG Pr0gm4n

Spion
09.03.2008, 21:57
Hallo

Ich bin selber am planen eines sehr ähnlichen Weckers:
Das selbe LCD wie du
Radio
Leselicht Steuerung an/aus (evt. Dimmen)
Zimmersteuerung (Licht an/aus)
Stereoanlage Steuern per IR
Sensoren(innen und aussen): Temperatur, Helligkeit, Luftfeuchtigkeit, Windgeschwindigkeit
evt. Internetanbindung für Wetterdaten u.ä.
Schlafphasen Erkennung
DCF77 Empfänger für genaue Uhrzeit

Das ganze an einem Netzteil betrieben und mit einem Akku für den Notfall.
Natürlich werde ich einfach anfangen und das ganze stetig erweitern.

mfg Luca

Murdoc_mm
10.03.2008, 02:02
Hi,

wie siehts denn eigentlich mit der Auflösung der LCDs aus? Also was kann man "gut" darstellen? (Z.B. man kann zwar winzig kleine Schrift darstellen aber schön sieht das ja nicht aus, oder?)

Ist ne Analog-uhr wie auf diesem Handy genauso gut darstellbar oder sieht das eher verpixelt aus?

http://www.futurebytes.ch/wp-content/uploads/2007/08/nokia_6555_umts_einsteigerhandy.jpg
http://www.futurebytes.ch/wp-content/uploads/2007/08/nokia_6555_umts_einsteigerhandy.jpg

Ich frage weil ich auf eine 24-Stunden-Uhr gestoßen bin und mir (rein theoretisch) überlegt habe wie das auf diesem gLCD wohl aussieht.

http://www.mijan.de/bilder/uhren/24h.jpg
http://www.mijan.de/bilder/uhren/24h.jpg

Hat jemand zufällig schon mal ne Analog-Uhr auf nem gLCD dargestellt und das dann mal fotografiert? Oder andere Beispielbilder?

Gruß

Ratber
10.03.2008, 10:19
Ja,die Auflösung spielt natürlich ein Rolle dabei.
Etwas Geschick beim Programieren gehört aber auch dazu.
Ich hab hässliche Analogdarstellungen auf hochauflösenden und recht schmucke Versionen auf kleinen LCDs gesehen.

Hier mal ein Beispiel:

Klick mich (http://img458.imageshack.us/img458/2319/dscn02888nr.jpg)

Das display hat 160x43 Pixel Monochrom und die uhr wird mit 42x42 Pixel dargestellt.

Wie man im Vergleich sieht schauts auf dem Nokia eleganter aus.
Dafür kostet das Display auch etwas mehr (Schnäpchen ausgenommen)


Die 24h Uhren waren Mitte/Ende der 70er schon einmal schwer in Mode.
Ich fand es immer lustig wenn ich bei einer Zeitanfrage einfach meine Armbanduhr hingehalten habe und die Leute erstmal in "Starre" verfallen sind weils Gewohnte fehlte. :lol:



Wie gesagt, die auflösung richtet sich danach was du darstellen möchtest.
Stell am besten erstmal überlegungen an wie deine Darstellung aussehen soll und was alles zu sehen ist und dann kannst du abschätzen welche auflösung dein Display haben soll.

karlmonster
10.03.2008, 20:14
hmm wie willste denn das mit der internet anbindung machen ? da wäre ich gespannt also für datum und uhrzeit hätte ic DCF 77 empfohlen. dürfte leichter sein als TCIP oder sonstiger spaß ;D aber wenn du gute ideen hast: gerne

tzlo
14.03.2008, 20:11
@karlmonster: joa...uli hat mal nen avr webserver projekt in C gemacht...da werde ich mir wohl den TCP/IP Stack Code ausborgen....ich kann ja mal uli fragen, ob ich den Code verwenden darf...

Aso...Danke für die Antworten...ja, auf dem 320x240pixel Display werde ich nen Digitaluhr darstellen..

Furtion
30.03.2008, 14:03
Hi,

also tzlo alias Tim hat mich beauftrauftragt, im Forum zu schreiben, das
der Wecker Hardware technisch zwar fertig ist, aber er wegen eines
Zwischenfalles, seinen rechten Zeigefinger nicht mehr bewegen kann und
somit an dem Wecker nicht mehr weiterbauen kann.

Robin1508
19.05.2008, 03:15
Also das Projekt find ich super, mich würds interessieren, woher du den FM Transmitter hast und was sowas kostet. Ach und natürlich gute Besserung wegen deines Fingers! (auch wenns schon ne weile her is^^)

Gruß Robin

tzlo
24.05.2008, 21:53
sooo! jetzt möchte ich auchmal wieder meinen schmand dazugeben \:D/ \:D/

ich war in so einer behandlung und jetzt kann ich meinen finger wieder fas so wie früher bewegen (wird schon \:D/ )

zum projekt:

das FM transmitter modul findest du bei sparkfun es wird über spi angesteuert und besitzt eine externe antenne ;-D

ich habe mittlerweile mehrere platinen geätzt und habe dan aber immerwieder fehler entdeckt :-D Jo jetzt bin ich schon bei der 4. platine mal sehn...nen atmega2560 habe ih auch schon verbraten :-D

ot:

och habe ja bald b-day \:D/ und dann werde ich mal sehen in was ich das investire...mal sehen vllt. nen arm chip für meinen wecker :-D nein spaß

gruß tim

Murdoc_mm
25.05.2008, 23:39
Hi,

hab wieder was interessantes gefunden: Lichtwecker.

http://de.wikipedia.org/wiki/Lichtwecker

Der Wecker dimmt das Zimmerlicht und/oder das Nachttischlämpchen langsam hoch und simuliert so den Sonnenausgang. Der schlafende bekommt durch die Augenlieder das Licht mit und wacht langsam auf. Das ganze soll so über 30 min laufen.

Ne Dimmerschaltung die vom Controller gesteuert wird sollte kein großes Problem sein, man muss halt nur auf die 230V aufpassen.

Gruß

Ratber
27.05.2008, 04:19
Der Wecker dimmt das Zimmerlicht und/oder das Nachttischlämpchen langsam hoch und simuliert so den Sonnenausgang. Der schlafende bekommt durch die Augenlieder das Licht mit und wacht langsam auf. Das ganze soll so über 30 min laufen.

Ja,so der Gedanke aber das funktioniert nicht bei jedem.
Wenn ich so richtig kaputt bin dann schlafe ich solange bis ich von alleine aufwache egal ob hell oder dunkel bzw. bis der gestellte Wecker plärrt :D.

tzlo
27.05.2008, 20:56
Also jetzt so wirds bei uns um 5:30 schon richtig helll und mein wecker klingelt erst um 6:25Uhr und bis dahin bin ich schon laaaaange wach und online x)

Ratber
28.05.2008, 17:05
Also jetzt so wirds bei uns um 5:30 schon richtig helll und mein wecker klingelt erst um 6:25Uhr und bis dahin bin ich schon laaaaange wach und online x)

Du hast es gut.

5:30 bin ich längst auf der Arbeit und 6:30 mach ich die erste Kaffeepause. :D

tzlo
02.06.2008, 14:32
Also jetzt so wirds bei uns um 5:30 schon richtig helll und mein wecker klingelt erst um 6:25Uhr und bis dahin bin ich schon laaaaange wach und online x)

Du hast es gut.

5:30 bin ich längst auf der Arbeit und 6:30 mach ich die erste Kaffeepause. :D

Jo, shit happens...ich gehe ja auch noch zur Schule^^

Dann will ich auch mal nen bisschen Code posten (wär ganz Nett, wenn jemand drübergucken könnte, falls er fehler entdeckt [ist nidcht der ganze code, nur das initialiesieren vom screen und hauptmenü])


$regfile = "m2560def.DAT"
$crystal = 18000
$baud = 9200
$eepleave
$loadersize = 512
$hwstack = 100
$swstack = 75
$framesize = 40
$lib "glcdKS108.lib" 'Include the library for the KS-108 controler


Config Graphlcd = 320 * 240sed , Dataport = Porta , Controlport = Portc , Ce = 0 , Ce2 = 1 , Cd = 2 , Rd = 3 , Reset = 5 , Enable = 4
'The dataport is the portname that is connected to the data lines of the LCD
'The controlport is the portname which pins are used to control the lcd
'CE =CS1 Chip select
'CE2=CS2 Chip select second chip
'CD=Data/instruction
'RD=Read
'RESET = reset
'ENABLE= Chip Enable


Config Adc = Single , Prescaler = Auto , Reference = Internal 'Setting up the a/d convertor
Config Timer1 = Timer , Prescale = 1024 ' Timer 1 sets the screen back to the mainmenu after 10sec
Const Timer1preload = 58336 'Timer 1 preload for 1 sec interrupt


Speaker Alias Portf.7 'Buzzer connected to portf.7, see circuit diagram
Dim Temp As Byte , X As Word , Y As Word
Dim Row As Byte , Keyarray(3) As Byte , Col As Byte , Key As Byte , Keylus As Byte
Dim Keypressed As Byte , Menu As Byte
Dim Timecount As Byte
Setfont Font8x8
Enable Ovf1
Enable Interrupts
On Timer1 1secint ' on overflow jump to 1 sec int routine
Start Adc ' Start the A<->D convertor
Stop Timer1

Gosub Showmainmenu ' Starts with the Mainmenu
' =====Main=====
Main:
Do
'*************************
' Here your main prog
'*************************
Gosub Readtouch ' Read the touch cordinates
Gosub Whichkey ' Which key is pressed
If Menu > 1 Then ' Starts the timer if the menu is not the Mainmenu
Start Timer1
Else
Stop Timer1
End If

If Keypressed > 0 Then ' Key is pressed
Select Case Menu ' Depends on the menu that we are in what to do with the pressed key
Case 1 : Select Case Keypressed 'Mainmenu
Case 11 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
Case 12 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
Case 13 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
Case 21 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
Case 22 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
Case 23 : Gosub Showlichteettafelmenu ' Shows a sub menu
Case 31 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
Case 32 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
Case 33 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
Case 41 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
Case 42 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
Case 43 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
End Select

Case 13 : Select Case Keypressed 'LichtEetafelmenu (menu 13)
Case 11 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
Case 12 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
Case 13 : Gosub Showmainmenu ' Back to the mainmenu
Case 21 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
Case 22 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
Case 23 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
Case 31 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
Case 32 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
Case 33 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
Case 41 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
Case 42 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
Case 43 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
End Select
End Select
Keypressed = 0 ' Key is processed so put it back to 0
End If
Loop


'=== Subroutines===
$include "font8x8.font"

1secint: ' Interrupt routine will set the screen back to the mainmenu in 10 seconds
Incr Timecount ' increment every sec the counter with 1
If Timecount => 10 Then ' here is the 10 sec
Stop Timer1 : Timecount = 0
Gosub Showmainmenu ' Sets the screen
Else
Timer1 = Timer1preload
End If
Return


Showmainmenu: 'Shows the main menu
Menu = 1 'Menu number
Cls 'Clears the screen
Showpic 0 , 0 , Headerhoofdmenu ' Draw the 9 pictures on the screen
Showpic 0 , 16 , Jalvoor
Showpic 32 , 16 , Jalachter
Showpic 64 , 16 , Lichtkeuken
Showpic 96 , 16 , Autoprog
Showpic 0 , 40 , Lichtsalontafel
Showpic 32 , 40 , Lichteettafel
Showpic 64 , 40 , Schemerlamp
Showpic 96 , 40 , Pijlrechts
Return

Showlichteettafelmenu: ' Shows the ShowLichtEetafel menu (sub menu 13)
Menu = 13 ' Menu number
Cls 'Clears the screen
Showpic 0 , 0 , Headerlichteettafel ' Draw the 9 pictures on the screen
Showpic 0 , 16 , Stopbutton
Showpic 32 , 16 , Pijlomhoog
Showpic 64 , 16 , F1preset
Showpic 96 , 16 , F2preset
Showpic 0 , 40 , Escbutton
Showpic 32 , 40 , Pijlomlaag
Showpic 64 , 40 , F3preset
Showpic 96 , 40 , F4preset
Return


Whichkey: 'Determins which key is pressed
Select Case X ' For the x value
Case 200 To 340 : Col = 10 ' The cordinates on the touchscreen determins which key is pressed for example;
Case 341 To 486 : Col = 20 ' 341 to 486 are the cordinates where between the second column is
Case 487 To 635 : Col = 30
Case 636 To 774 : Col = 40
Case Else Col = 0
End Select
Select Case Y ' For the y value
Case 250 To 360 : Row = 1 ' The cordinates on the touchscreen determins which key is pressed for example;
Case 361 To 540 : Row = 2 ' 361 to 540 are the cordinates where between the second row is
Case 541 To 730 : Row = 3
Case Else Row = 0
End Select
Key = Col + Row ' Add the row and column value so we get 1 key value
If Key > 0 Then ' There is a key pressed
Keyarray(keylus) = Key 'Must read the same key 3 times in a row, to prefent bouncing
Incr Keylus
If Keylus > 3 Then Keylus = 1
If Keyarray(1) = Keyarray(2) Then
If Keyarray(2) = Keyarray(3) Then ' Key is correct read 3 times the same
Sound Speaker , 1 , 65000 ' Give a key beep
Keypressed = Key
Timecount = 0
End If
End If
End If
Return

Readtouch:
Config Pinf.0 = Output ' Makes port F.0 output
Config Pinf.2 = Output ' Makes port F.0 output
Set Portf.0 ' Sets port F.0 High
Reset Portf.2 ' Sets port F.2 Low
Ddrf.1 = 0 ' Sets port F.1 as input
Ddrf.3 = 0 ' Sets port F.1 as input because we need it now as ad input
Waitms 20 ' Wait until the port is stable
Y = Getadc(3) ' Read the ad value for the y
Y = 1024 - Y ' Invert the reading
'Print "VALUE Y : " ; Y ' for debugging
Config Pinf.1 = Output ' Makes port F.1 output
Config Pinf.3 = Output ' Makes port F.3 output
Reset Portf.1 ' Sets port F.1 Low
Set Portf.3 ' Sets port F.3 High
Ddrf.0 = 0 ' Sets port F.0 as input
Ddrf.2 = 0 ' Sets port F.2 as input because we need it now as ad input
Waitms 20 ' Wait until the port is stable
X = Getadc(2) ' Read the ad value for the x
X = 1024 - X ' Invert the reading
'Print "VALUE X : " ; X
Return


'=====The buttons images=====
Headerhoofdmenu:
$bgf "HeaderHoofdmenu.bgf"
Headerlichteettafel:
$bgf "HeaderLichtEettafel.bgf"
Jalvoor:
$bgf "Jalvoor.bgf"
Jalachter:
$bgf "Jalachter.bgf"
Lichtsalontafel:
$bgf "LichtSalonTafel.bgf"
Lichteettafel:
$bgf "LichtEetTafel.bgf"
Lichtkeuken:
$bgf "Lichtkeuken.bgf"
Schemerlamp:
$bgf "Schemerlamp.bgf"
Escbutton:
$bgf "Esc.bgf"
Pijlomhoog:
$bgf "PijlOmhoog.bgf"
Pijlomlaag:
$bgf "PijlOmlaag.bgf"
Pijlrechts:
$bgf "PijlRechts.bgf"
Pijllinks:
$bgf "PijlLinks.bgf"
Autoprog:
$bgf "Autoprog.bgf"
Stopbutton:
$bgf "Stop.bgf"
F1preset:
$bgf "F1preset.bgf"
F2preset:
$bgf "F2preset.bgf"
F3preset:
$bgf "F3preset.bgf"
F4preset:
$bgf "F4preset.bgf"
F3leeg:
$bgf "F3Leeg.bgf"
F4leeg:
$bgf "F4Leeg.bgf"
Leeg:
$bgf "Leeg.bgf"

Das ist erstaml in Bascom, aber der endgültige Code wird in C geproggt

Nen EEPROM und nen externes SRAM werde ich noch hinzufügen....

Mfg Tim

tzlo
12.06.2008, 20:39
So, ich bin jetzt bei dem Ethernet Board bei version 3, bei dem VS1001 Board bei Version 2 und bei dem USB2µC Wandler bei Version 2...

Nun ein Paar Pic`s von den Platinen....

Im Moment ist es so, das der Wecker komplett zerlegt ist, weil ich immerwieder neue platinen ätze... abeer vorab Das ist mein Gehäuse : TEKO AUS33!! Es hat folgende Daten:

Allgemeines
Typ Gehäuse Serie AUS/KL
Farbe hellgrau RAL 9018
Material Polystyrol

Ausführung
Ausführung 2x 1,0 mm Aluminiumplatten

Maße
Länge 198,0 mm
Breite 178,0 mm
Höhe 108,0 mm

hdtvfreak
18.06.2008, 16:41
Sehr schönes Projekt =D>

Sehe leider die Bilder von den Platinen nicht. Wäre klasse, wenn du sie nochmals posten könntest

hdtvfreak
18.06.2008, 16:43
hm, fehler lag bei mir

klasse bilder !!!

Williboy
27.07.2008, 23:40
Hi tzlo,

gibt es mal wieder neue Bilder und Codezeilen von Deinem Wecker?

So du es dann realisiert, dokumentiert und den ganzen Code veröffentlicht hast, könnte ich mir ein bisschen Arbeit und Hirnmasse sparen und abkupfern. Eine Uhr brauche ich ja für mein kleines Projekt auch noch, Datum ebenso und ein bisschen Alarm könnte vielleicht auch nicht schaden, wenn ich meinen Funkwecker dann mal entsorge. Dann könnte ich Deinen Wecker auf meine Bedürfnisse zusammenschrumpfen und nachbauen.

mfg Williboy

tzlo
07.10.2008, 22:06
so ich will euch auchmal wieder auf dem laufenden halten!

Also biher geschafft:#

-ordentliche platine, aber noch beta phase (!!fast jeden tag!! min. 3-4 std dran gearbeitet!!!)
- frot und rückseite vom gehäuse gemacht
- hälfte der teile bestellt (200eus!!)

und:

nen ISP Adapter gekuft

Sebbokalypse
08.10.2008, 01:35
Nicht übel, hattest du nicht schon Bauteile für 300 € angeschafft?

Viel Erfolg weiterhin,

Seb

tzlo
08.10.2008, 13:22
ja sry oben verschrieben, das war jetzt die zweite ladung....

Trexis5
18.11.2009, 07:25
Hallo,

auf seite 2 steht ein Bascomcode für das Display für ein 320x240er LCD.
Das funktioniert bei mir aber nicht.
Der Parameter ist falsch.
Bascom kann ja eigentlich nur bis 255, oder irre ich mich?
Kann es sein das ich nicht die richtige .lib habe?
Wäre dankbar für Hilfe.


$lib "glcdKS108.lib" 'Include the library for the KS-108 controler


Config Graphlcd = 320 * 240sed , Dataport = Porta , Controlport = Portc , Ce = 0 , Ce2 = 1 , Cd = 2 , Rd = 3 , Reset = 5 , Enable = 4


by Holger

Jaecko
18.11.2009, 08:40
In der Bascom-Hilfe steht doch drin, welche Grössen alles möglich sind...

"This must be 240 * 64, 128* 128, 128 * 64 , 160 * 48 , 240 * 128, 192 * 64 , SED180*32 or 192 * 64SED."

Trexis5
18.11.2009, 11:31
Hallo,

ja das weiß ich, aber kann es sein das es eine modifizierte .lib ist?

Trexis5
20.11.2009, 07:11
Hi,

hat den keiner einen Rat?
Danke.

Trexis5
02.12.2009, 12:53
Hi,

also ich habe es hinbekommen.

Bascom
Atmel M128
GLCD 320x240
keine weiteren Bauteile.

http://home.arcor.de/h100386585/HPIM4043.JPG