- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 20

Thema: BASCOM, Atmega32 und ein 240*128 EA DIP240-7 Display

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier Avatar von RobNet
    Registriert seit
    13.11.2009
    Ort
    Schwabenland
    Beiträge
    16
    Na das klingt doch super, es scheinen ja alle Möglichkeiten vorhanden zu sein.

    Was genau hast Du vor? Ebenfalls eine Haussteuerung auf Funkbasis? Wenn ja kann ich mal auf die FS20 Elemente von ELV verweisen. Dazu habe ich hier einen Atemga32 Controller, welcher inzwischen FS20 spricht. Das ganze ist zwar eine recht schaurige Angelegenheit, funktioniert aber!

    Viele Grüße
    Thomas

  2. #2
    Neuer Benutzer Öfters hier Avatar von RobNet
    Registriert seit
    13.11.2009
    Ort
    Schwabenland
    Beiträge
    16
    Sehr cool, wie das mit dem TExten und Kreisen funktioniert, 1A - bis auf das, dass die Kreise eher Eier sind Aber das bekommen wir auch noch hin.

    Juhuuu, das macht Spaß, die Kreise, Rechtecke etc mal aus der Bascom Hilfe auf den Bildschirm zu zaubern!!!
    Geändert von RobNet (02.11.2011 um 17:50 Uhr)

  3. #3
    Neuer Benutzer Öfters hier Avatar von RobNet
    Registriert seit
    13.11.2009
    Ort
    Schwabenland
    Beiträge
    16
    So, nun ein aktueller Status zu den ToDo Punkten.
    Diese haben sich durch die aktuellen Funktionen erweitert und auch teils geändert.

    Aktuell funktioniert das Display wunderbar um Text, Kreise und Linien auszugeben über die in Bascom inplementierten Funktionen. Leider klappt es noch nicht die "Bild"-Funktion zu verwenden. Ich habe das Bascom-Test-Bild konvertiert und mit

    Showpic
    40 , 0 , Testbild

    Testbild:
    $bgf"test.bgf"

    versucht anzuzeigen. Dabei ist das Bild jedoch zemlich verzerrt und nicht wirklich erkennbar gewesen und so wie ich das interpretiere, hat sich der Atmega dabei auch aufgehängt, bzw. das Bild ist immer wieder erschienen und dann wieder verschwunden. Das wäre zu klären, wobei das bestimmt ein kleineres Problem ist.

    Da das Zeichnen von Linen und Kreisen relativ aufwendig ist (bzw. das Positionieren derer), werd ich wohl mal ein kleines C# Windows Programm für das Display erstellen, in welches man mit der Maus Zeichnen kann und welches dann den Bascom-Code zur gemachten Zeichnung ausgibt. Dann sollte es schneller gehen Linien o.ä. zu zeichnen. Das ganze aber wenn mal Zeit dafür vorhanden ist.

    Die Sache mit der 'anderen Schrift' muss ich mal noch austesten. Das Standart Font, ist sehr 'leicht' und dezent. eine etwas dickere und kräftigere Schrift wäre eigentlich erforderlich.

    Den Touch hab ich noch nicht angeschlossen, der kommt dran, wenn die Grafikdarstellung perfekt funktioniert.

    Prinzipiell soll das Ganze dann einmal so aussehen:

    - Das Display wird unten eine Status und Steuerleiste haben. Diese erlaub zwischen verschiedenen Bildschirmseiten hin und her zu schalten. Ebenso gibt es dort eine Anzeige zum aktuellen Status.

    - Auf dem Display selbst werden z.B. im Jalousie-Menü die Jalousiene in Textform angezeigt und dahinter dann z.B. Auf, Ab, Halb etc...

    - Dann gibt es einen weiteres Bildschirmmenü mit Beleuchtungssteuerung, wo man dann wählen kann z.B. Wohnzimmer-> Deckenleuchte Heller, Dunkler, Ein, Aus etc....

    - Ein weiteres Menü wird dann Optionen und Einstellungen biteten, wie Uhr einstellen, Helligkeitssensor kalibrieren usw.

    Bis dahin ist es noch ein ganzes Stück Arbeit. Das erste ist es die Menüs einmal so darzustellen, wie es nachher aussehen soll. Dann werden die Menüs mit den nötigen Funktionen belegt. Das wichtigste ist es als zuerst ordentlich Buttons zu erstellen und diese per Tocu auszuwerten.

    Und los gehts :-=}

    Viele Grüße
    Thomas

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.07.2009
    Beiträge
    405
    Zu den Bildern die eingefügt werden sollen:
    Öffne Paint -
    Stelle die Bildgröße entsprechend der Zielgröße ein - (zB. 48x48Pixel (es sind nicht alle Größen mit Bascom konvertierbar?))
    Erstelle deine Grafik -
    Unter Eigenschaften die Farbe auf Schwarz/Weiß einstellen -
    Als BMP speichern -
    Mit dem in Bascom integriertem Konvertierer konvertieren - (ich glaub ich stottere)
    Nun sollte das Seitenverhältniss passen ?????

    Klicke auf die Grafik für eine größere Ansicht

Name:	Unbenannt2.gif
Hits:	44
Größe:	1,0 KB
ID:	20450

    Leider läßt sich hier keine .bgf Datei hochladen? Zip oder RAR geht auch nicht - - -

    Zu dem was Du vorhast - ob dafür der Speicher des Atmega32 ausreicht??
    Ansonsten - hört sich cool an!
    Geändert von dussel07 (02.11.2011 um 20:43 Uhr)

  5. #5
    Neuer Benutzer Öfters hier Avatar von RobNet
    Registriert seit
    13.11.2009
    Ort
    Schwabenland
    Beiträge
    16
    Hi dussel07,

    werd ich austesten. Der Speicher sollte ja kein Problem darstellen. Eventuell kann man da ja etwas mit EEprom auf I²C Basis lösen. Das größere Problem sind die Timer, da ich schon 2 Timer für die FS20 Funksteuerung benötige. Es bleibt aber offen einen Atmega64 zu verwenden, soweit ich das gerade in Erinnerung habe, hat der einen Timer mehr.

    100%ig hab ich das ganze noch nicht im Griff, aber das Ziel ist es für imch erst mal die Oberfläche zu realisieren, die Details dahinter funktinieren immer Es gibt ja viele, viele Möglichkeiten und im Prinzip bin ich da von Bascom überzeugt. Bestimmt nicht immer der idealste Code, aber für ehemalige Basic und indischem C# Programmieren doch recht vorteilhaft


    Schönen Abend

    Grüße
    Thomas

  6. #6
    Neuer Benutzer Öfters hier Avatar von RobNet
    Registriert seit
    13.11.2009
    Ort
    Schwabenland
    Beiträge
    16
    Hi,

    habe jetzt einige Versuche hinter mir...

    Was mich gerade noch stört ist, dass ich einen gewünschten Text nicht sauber in die Mitte einer Bascom-LCD-Box bekomme. Das ist ja auch klar, die Schriften haben ja immer einen gewissen Abstand zur nächsten Zeile. Aber irgendwie muss das Problem ja lösbar sein. Ich möchte am unteren Rand des Displays eine Navigationsleiste, welche aus Linien besteht und da dann passend Text schreiben... Das scheint gar nicht so einfach zu sein.

    z.B.

    --------------------------------------------
    |
    |
    |
    |
    |-----------------------------------------
    |Hauptmenü | Einstellungen | | > |
    |-----------------------------------------


    Das ganze möchte ich eigentlich nur, weil ich mit den Bascom-Convertierten Buttons nicht so ganz zufrieden bin. Die Grafiken lassen sich jetzt zwar anzeigen. aber die Konvertierung ist nicht so wirklich chick.

    Welche Möglichkeiten für 'schöne' Menü-Buttons gibt es denn noch?

    Viele Grüße
    Thomas

    EDIT:
    Da der Kontroller T6963 nur begrenzte Fonts hat, muss wohl jedes Pixel einzeln gesetzt werden um ein neues Font zu erstellen, dann sollte es aber auch möglich sein den Text Pixelgenau zu setzen. Leider ist das ganze ein wenig zu viel Arbeit für den Moment und der Atmega wirds dann mit dem geplanten Gesamtcode auch nicht ganz schaffen....

    Ziel ist es also nun:

    - Chicke Buttons, welche etweder einen "Live-Varibalen" Text haben, oder notfalls auch statische Bilder sind.
    - Text an jede beliebige Stelle des Displays setzen, ohne auf Zeilen/Spalten achten zu müssen.... (ist das möglich?)
    - Invertieren von Text.
    Geändert von RobNet (06.11.2011 um 09:05 Uhr)

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    Beiträge
    765
    Das ist alles machbar. Wenn Du Sorgen wegen dem Platz für den Gesamtcode hast, gehe ich davon aus, dass die Fonts evtl. nicht optimal hinterleft werden. Dafür würde ich bei Platzproblemen eine eigene Routine nehmen. Viel Platz sparst Du, wenn Du Dir "Read" und Data sowie "Lookup" näher anschaust. Damit lassen sich Fonts recht platzsparend einbinden. Und hinterlege nur die Zeichen, welche Du auch wirklich benötigst.
    Die neueren Bascom Versionen compilieren auch schlankeren Code als die älteren Versionen.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  8. #8
    Neuer Benutzer Öfters hier Avatar von RobNet
    Registriert seit
    13.11.2009
    Ort
    Schwabenland
    Beiträge
    16
    Hi,

    bei der Einbindung von Fonts stehe ich jedoch gerade noch auf der Steuerleitung

    Theoretisch sollte das ja so gehen

    Code:
    'clear the  screen
    
     Cls
    
     Wait 2
    
     'specify the font we  want to use
    
     Setfont Font8x8
    ...

    Code:
    'we need to include  the font files
    
     $include"font8x8.font"
    Ein Font hab ich auch, jedoch kommt die Fehlermeldung:
    Invalid datatyp... in der SetFont Zeile.

    was vermutlich daran liegt, dass ich für den T9693 Kontroller keine passende LIB habe welche den Befehl Setfont unterstützt.
    Gibt es so eine Lib?

  9. #9
    Neuer Benutzer Öfters hier Avatar von RobNet
    Registriert seit
    13.11.2009
    Ort
    Schwabenland
    Beiträge
    16
    Hi,

    um also einen Atemga8 zum Portexpander als TWI Slave zu machen, könnte ich doch die Beispielrotine aus der Bascom Hilfe nutzen:

    Code:
     $regfile="meinemega8konfiguration"' specify the  used micro
     $crystal= 8000000                                          ' used  crystal frequency
     $baud= 19200                                                ' use  baud rate
     $hwstack= 32                                                ' default  use 32 for the hardware stack
     $swstack= 10                                                ' default  use 10 for the SW stack
     $framesize= 40                                              ' default use  40 for the frame space
     
     
     ' Not all AVR chips  have TWI (hardware I2C)
     ' IMPORTANT : this  example ONLY works when you have the TWI slave library
     ' which is a  commercial add on library, not part of Bascom
     
     Print"MCS Electronics TWI-slave demo"
     
     Config Twislave =&H70 , Btr = 1 , Bitrate = 100000
     
     
     'as you might need  other interrupts as well, you need to enable them manual
     
     EnableInterrupts
     
     'this is just an  empty loop but you could perform other tasks there
     Do
     nop
     Loop
     End
     
     'A master can send  or receive bytes.
     'A master protocol  can also send some bytes, then receive some bytes
     'The master and  slave must  match.
     
     'the following  labels are called from the library
     Twi_stop_rstart_received:
     Print"Master sent stop or repeated  start"
     Return
     
     
     Twi_addressed_goread:
     Print"We were addressed and master  will send data"
     Return
     
     
     Twi_addressed_gowrite:
     Print"We were addressed and master  will read data"
     Return
     
     
     'this label is  called when the master sends data and the slave has received the  byte
     'the variable TWI  holds the received value
     Twi_gotdata:
     Print"received : "; Twi
     Return
     
     'this label is  called when the master receives data and needs a byte
     'the variable  twi_btr is a byte variable that holds the index of the needed byte
     'so when sending  multiple bytes from an array, twi_btr can be used for the index
     Twi_master_needs_byte:
     Print"Master needs byte :  "; Twi_btr
      Twi = 65                                                  ' twi must  be filled with a value
     Return
     
     
     'when the mast has  all bytes received this label will be called
     Twi_master_need_nomore_byte:
     Print"Master does not need anymore  bytes"
     Return
    Damit wäre dann mein Mega8 als Slave konfiguriert wenn ich das richtgi verstehe. Und in der Variable TWI ist mein Empfengener Wert.

    Die Bascom-Hilfe schreibt:
    ' IMPORTANT : this example ONLY works when you have the TWI slave library
    ' which is a commercial add on library, not part of Bascom
    Weiß jemand was es damit auf sich hat?

    Meinem Mega32 als Sender und Master würde dann so folgenden COde bekommen (ebenfalls aus der Hilfe):
    Code:
    Config Sda = Portb.5
     Config Scl = Portb.7
     Dim X AsByte, A AsByte, Bytes AsByte
     X = 5                                                        'assign variable to  5
     Dim Ax(10)asByte
     Const Slave =&H40                                          'slave address  of a PCF 8574 I/O IC
     I2csend Slave , X                                            'send the value  or
     
     
     For A = 1 To 10
      Ax(a)= A                                                  'Fill  dataspace
     Next
     Bytes = 10
    
     I2csend Slave , Ax(1), Bytes
     End
    Habe ich das richtig verstanden, dass das schon meine Antwort auf die Portexpanderung wäre? Meinem Salve würde ich natürlich dann noch in ner Schleife sagen was er mit den empfangenen Daten machen soll also z.B.

    Code:
    if twi = 000001 then
    porta.1 = 1
    oder ähnlich...

    was mein Ihr?

    Viele Grüße
    Thomas
    Merke: Elektronik beherrscht die Welt wir beherrschen die Elektronik

Ähnliche Themen

  1. ATmega32 LCD Display
    Von Tanne123 im Forum AVR Hardwarethemen
    Antworten: 10
    Letzter Beitrag: 19.10.2010, 20:05
  2. 3310 display mit atmega32
    Von Che Guevara im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 23
    Letzter Beitrag: 15.08.2008, 15:08
  3. display an atmega32
    Von Che Guevara im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 9
    Letzter Beitrag: 17.06.2008, 19:40
  4. EA DIP240-7 an M-Unit 2.0
    Von doering2006 im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 0
    Letzter Beitrag: 15.12.2006, 16:36
  5. Speicherplatz des ATmega32 + Display an ATmega32
    Von Rob.Anfänger im Forum AVR Hardwarethemen
    Antworten: 6
    Letzter Beitrag: 19.11.2006, 01:59

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests