- Akku Tests und Balkonkraftwerk Speicher         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 20 von 20

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

  1. #11
    Neuer Benutzer Öfters hier Avatar von RobNet
    Registriert seit
    13.11.2009
    Ort
    Schwabenland
    Beiträge
    16
    Anzeige

    E-Bike
    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

  2. #12
    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 10:05 Uhr)

  3. #13
    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! \/

  4. #14
    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?

  5. #15
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    Beiträge
    765
    Nein, unterstützt der T6963 so nicht. Entweder eine eigene Routine erstellen, oder den Font als einzelne bgf Dateien (je Zeichen eine) einbinden und nach Bedarf an der jeweiligen Position mittels Showpic anzeigen.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

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

    ist das nicht ein unglaublich großer Aufwand? Ich meine es kommt relativ viel Text auf das Display und wenn ich dabei jeden Pixel oder jeden Buchstaben aus einer .bgf holen muss, ist das Projekt Ende 2012 nicht fertig

    Bin inzwischen soweit, dass ich auf 'schöne' Buttons ja verzichten würde und auch bei der Standart Schrift bleibe. Ich würde jetzt Buttons einfach mit "Box (x,y)-(x,y)" zeichnen. Jedoch besteht dann immer noch das Problem, dass ich den Text ja nicht pixelgenau in die Box schreiben kann.

    Hat Du schonmal ein solches Problem mit einem T6963 gelöst und mir eventuell eine Starthilfe?

    EDIT: Einbinden von Bilder klappt ganz gut und ist auch eine nette Spielerei im Moment, aber für Buttons und den Text zur Laufzeit... da happerts....

    Hier mal ein Start-Splash-Screen PS: Ich bin schonmal auf einen Atmega644 umgestiegen, da ich für die Funksteuerung mit FS20 später noch mehr Timer benötige.

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

Name:	IMAG0123.jpg
Hits:	40
Größe:	74,4 KB
ID:	20482

    Grüße
    Thomas
    Geändert von RobNet (06.11.2011 um 13:32 Uhr)

  7. #17
    Neuer Benutzer Öfters hier Avatar von RobNet
    Registriert seit
    13.11.2009
    Ort
    Schwabenland
    Beiträge
    16
    Hier mal ganz kurz eine Zeichnung wie ich mir das Jalousiemenü vorstellen könnte.
    Die Uhr rechts oben müsste dann in der Praxis natürlich dynamisch sein, aktuell ist das gesamte nur ein bgf-Bild in welches die Texte geschrieben wurden.

    Im weiteren Verlauf des Projekts müssen auch viele Statustexte wie z.B. "Garage abgeschlossen", "Besucher klingelt" etc... angezeigt werden und die müssen dynamisch generiert werden können. Der Aufbau des Bildes ist aktuell auch nicht besonderst schnell, aber das liegt vermutlich im Moment noch bei meinen 1MHz internen Takt. Sollte jedoch später mal mit Fingerdruck eine Taste angewählt werden, wäre es prima wenn diese sich invertiert und das muss natürlich so schnell gehen wie der Finger auf dem Display tippt...

    Ohje, aktuell sehe ich mich als beginner von Displays recht überfordert...

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

Name:	IMAG0124.jpg
Hits:	27
Größe:	54,4 KB
ID:	20483

    So soll das Menü ungefähr aussehen für die Jalousien, es gibt dann für jeden Bereich ein separaten Menübildschirm

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

Name:	IMAG0127[1].jpg
Hits:	35
Größe:	42,0 KB
ID:	20484

  8. #18
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    Beiträge
    765
    Ich habe grad keine Programmierumgebung dabei. Jedoch sehe ich da keinen allzu großen Aufwand. Wenn Du Dich an den gegebenen Textpositionen orientierst, kannst Du den im T6963 intergrierten Font nehmen. Eine Linie "drumherum" zeichnen hast Du ja schon herausgefunden. Ansonsten einfach die Buttons als bgf abspeichern und im Programm mit Showpic darstellen lassen. Flexibler wird es, wenn Du eine Sub erstellst, welche den Button dynamisch (z.B. anhand der Textbreite) berechnet. Da lassen sich dann auch recht einfach "runde Ecken" realisieren.

    Soll es pixelgenau platziert werden, dann halt wie gesagt einen eigenen Font integrieren. Da sollte doch ein Grafikfont bei den Samples bei sein.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

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

    ich werd am Wochenende schauen, was ich realisieren kann und melde mich dann wieder. Parallel zum Display bin ich gerade noch an einem Versuch der Porterweiterung des Atmega644ers mit einem Atmega8 als Slave am I²C.
    Merke: Elektronik beherrscht die Welt wir beherrschen die Elektronik

  10. #20
    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

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. ATmega32 LCD Display
    Von Tanne123 im Forum AVR Hardwarethemen
    Antworten: 10
    Letzter Beitrag: 19.10.2010, 21:05
  2. 3310 display mit atmega32
    Von Che Guevara im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 23
    Letzter Beitrag: 15.08.2008, 16:08
  3. display an atmega32
    Von Che Guevara im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 9
    Letzter Beitrag: 17.06.2008, 20: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, 17:36
  5. Speicherplatz des ATmega32 + Display an ATmega32
    Von Rob.Anfänger im Forum AVR Hardwarethemen
    Antworten: 6
    Letzter Beitrag: 19.11.2006, 02:59

Stichworte

Berechtigungen

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

12V Akku bauen