Willkommen Gast. Bitte einloggen oder registrieren.
Mai 2, 2025, 16:07:24
Übersicht Ungelesene Beiträge auflisten Hilfe Suche Spiele Mitgliederkarte Kalender Login Registrieren

Schnellsuche
  Zeige Beiträge
Seiten: [1]
1  Alles rund ums Modden / Tutorials / Re: USB-LCD Lowcost Edition am: Dezember 17, 2008, 11:12:12
Hallo zusammen, ich bins nochmal.
Ich habe eine weitere Frage/Problem: Wenn ich meinen Rechner in den Hibernate- oder Standby-Zustand versetze und ihn danach wieder aufwecke, bekomme ich mit der USB-LCD-Dll keine Verbindung mehr. Ich bekomme dann als result immer nur eine 0 zurück... Ich habe mir mal die Sources der DLL und des libusb-Treibers angesehen, muss aber gestehen, das ist mir dann doch etwas zu kompliziert. Hat vielleicht irgendwer ähnliche Probleme? Da sich mein LCD ja jetzt nach einem Powerdown (Hibernate) selber initialisiert, bräuchte ich eigentlich nur wieder eine Verbindung zum libusb-Treiber zu bekommen, damit ich dann wieder Befehle an den Tiny schicken kann. Oder sehe ich das falsch? Kann ich da was debuggen oder "von Hand" testen?
Hat irgendwer eine Idee? Wen könnte ich kontaktieren?
Grüße Christian
2  Alles rund ums Modden / Tutorials / Re: USB-LCD Lowcost Edition am: Dezember 16, 2008, 13:29:47
Hallo Ast,
es ist vollbracht!!! Ich habe eine WinAVR Version 20060125 gefunden. Die habe ich installiert und den Sourcecode per Kommandozeile kompiliert und siehe da - es hat geklappt. Nun hat es mit ein paar kleinen Veränderungen wirklich geklappt, die Hintergrundbeleuchtung dimmbar zu machen. Dazu habe ich die Leitungen zu den Pins PD3 und PD5 getauscht. Im Code habe ich folgende Zeilen geändert (nur in der main.c):

...
case cmdLCD_BG:
         OCR0B = data[2];
         len = 1;
         break;
...

int   main(void){

   static LCD_Options_t LCD_Options;
   static char text[16]={66,66,105,116,116,101,32,119,97,114,116,101,110,46,46,46};
       
   PORTB = 0xFF
   DDRB = 0xFF;
   PORTD = 0x00;
   DDRD = 0b01111000;
   
   TCCR0A = (1<<COM0B1) | (1<<COM0B0) | (1<<WGM00) | (1<<WGM01);
   TCCR0B = (1<<CS01) | (1<<CS00);
   OCR0B = 128;         //Inital value for background LED

   usbInit();

   //my values for init the LCD automatically
   LCD_Options.lines = 1;
   LCD_Init(&LCD_Options, 1);
   LCD_Init(&LCD_Options, 2);

   //Printing a welcome message
   LCD_Command(192+12,1);
   usbFunctionWrite(&text, 16);   

   sei();
   for(;Wink{   /* main event loop */
      usbPoll();
   }
   return 0;
}


Nun kann man mit dem Befehl USB_LCD_BL(value) einen Wert von 0-255 angeben, wobei 0=an , 255=aus ist. Diese Invertierung kommt durch den PWM mode.
In der usbconfig.h musste ich die Zeilen
//#define   USB_CFG_VENDOR_NAME      'w', 'w', 'w', '.', 'm', 'o', 'd', 'd', 'i', 'n', 'g', '-', 'f', 'a', 'q', '.', 'd', 'e'
//#define   USB_CFG_VENDOR_NAME_LEN   18
...
//#define   USB_CFG_DEVICE_NAME      'U', 'S', 'B', '-', 'c', 'L', 'C', 'D'
//#define   USB_CFG_DEVICE_NAME_LEN   7
auskommentieren, um Platz im Tiny zu bekommen.
Vielen Dank für die Hilfen.
Gruß
Christian
3  Alles rund ums Modden / Tutorials / Re: USB-LCD Lowcost Edition am: Dezember 15, 2008, 17:08:38
Hallo Ast,
also, ich habe das jetzt mal mit WinAVR 071221, 080610 und 081205 ausprobiert und nix hat geklappt.
Wenn ich unter Windows XP SP3 in der Kommandozeile aus dem Verzeichnis /firmware/default den befehl "make" eingebe, erscheint folgende zusammenfassung:

AVR Memory Usage
----------------
Device: attiny2313

Program:    2064 bytes (100.8% Full)
(.text + .data + .bootloader)

Data:         51 bytes (39.8% Full)
(.data + .bss + .noinit)

100.8% ist ja wohl etwas zu viel. Woran kann das liegen?

Hat IRGENDWER die original Sourcen mit oder ohne AVR Studio und WinAVR kompiliert bekommen, so dass das LCD sich dann richtig anmeldet? Vielleicht liegt das irgendwie am WinAVR?
Das ist ja fast verhext...
Gruß
Christian
4  Alles rund ums Modden / Tutorials / Re: USB-LCD Lowcost Edition am: Dezember 5, 2008, 19:20:29
Hallo,
ich habe es mittlerweile geschafft, die Sourcen zu kompilieren, allerdings wird das "USB-LCD" dann nicht erkannt sondern bleibt als "Unbekantes Gerät" im Gerätemanager stehen...
Welche Kombination aus Sourcen und Compiler benutzt ihr?
Christian
5  Alles rund ums Modden / Tutorials / Re: USB-LCD Lowcost Edition am: Dezember 4, 2008, 10:33:44
Hallo Ast,
danke schonmal für das makefile. Ich hab das jetzt mal damit ausprobiert, irgendwie läuft der zwar durch, aber wenn ich das hex-File flashe, dann ist das wohl etwas zu gross. Keine Ahnung, schade...
Wegen den Pins, ich hab das nochmal neu heruntergeladen und da steht richtigerweise 3 drin statt 5. Evtl. hatte ich das schon geändert...
Ich hab dann jetzt alles nochmal mit dem aktuellen Sourcen probiert, aber das geht auch nicht, ich bekomm das nicht richtig kompiliert scheinbar...
Christian
6  Alles rund ums Modden / Tutorials / Re: USB-LCD Lowcost Edition am: Dezember 3, 2008, 18:58:16
Hallo zusammen,
ich habe ein 40x4 Zeichen LCD erfolgreich in Betrieb genommen. Alles wunderbar. Ich würde nun gerne versuchen, die Hintergrundbeleuchtung per PWM zu dimmen. Ich meine im Sourcecode entdeckt zu haben, dass der Wert aus dem Befehl "short _stdcall USB_LCD_BL (short value)" irgendann auf dem TINY als data[2] ankommt:

case cmdLCD_BG:
         if(data[2] != 0)
            PORTD |= (1 << 5);
         else
            PORTD &= ~(1 << 5);
         len = 1;
         break;

Meine erste Frage nun: Warum heisst es hier (1<<5)Huh Das hieße doch, dass das Bit 5 des Ports D beeinflusst wird... Und das wäre doch eigentlich der Pin für das Signal E2? Hmmm.
Nunja, wenn ich nun PD5 und PD3 tauschen würde (E2/BL), dann könnte ich die PWM-Funktion vom PD5 aktivieren (OC1B). Dann müsste ich nur den Wert in die PWM schreiben und schwups müsste meine Hintergrundbeleuchtung dimmbar sein.
Problem: Ich habe versucht, die Firmware mit dem ATMEL AVR Studio und WinAVR (beides neueste Versionen) zu compilieren. Nachdem ich einige Optimierungen eingeschaltet habe, passt es zumindest in den Speicher (Flash 96.8%/Data 39.8%) und ich bekomme keine Fehlermeldung. Aber wenn ich das erzeugte HEX-File flashe, wird meine Schaltung nicht mehr erkannt -> "Unbekanntes Gerät".
Gibt es da irgendwie eine Anleitung, wie ich die Firmware selber compilieren und modifizieren kann? Oder kann mit das einer machen und mir das HEX-File schicken? Das wären ja nur ein paar Zeilen mehr:

[...]
case cmdLCD_BG:
         OCR1B = data[2];
         len = 1;
         break;
[...]
int   main(void){
   PORTB = 0xFF;
   DDRB = 0xFF;
   PORTD = 0;
   DDRD = 0b01111000;
   TCCR0A = (1<<COM0B1) | (1<<WGM00) | (1<<WGM01)
   TCCR0B = (1<<WGM02) | (1<<CS00)
   usbInit();
   sei();
   for(;Wink{   /* main event loop */
      usbPoll();
   }
   return 0;

Dann habe ich noch ein ganz anderes Problem: Wenn ich mein Display verbunden habe und alle wunderpar funktioniert, möchte ich meinen Rechner in den Hibernate-Zustand (Susbend to disk) versetzen. Das geht  natürlich auch. ABER wenn ich dann wieder aufwache (Resume), dann ist das Display nicht initialisiert und ich bekommen auch bei einem Neustart meiner Software auf dem PC keine Verbindung mehr. Im  Gerätemanager steht das Display ordentlich angemeldet drin. Erst nachdem ich das Display im Gerätemanager deaktiviert und aktiviert habe kann ich mich mit meiner Software wieder verbinden... Ist das ein bekanntes und im Idealfall gelöstes Problem? Habt ihr damit auch Probleme?

Grüße an alle
Christian
Seiten: [1]

Einloggen mit Benutzername, Passwort und Sitzungslänge      

Powered by MySQL Powered by PHP
eXTReMe Tracker
Seite erstellt in 0.027 Sekunden mit 22 Zugriffen.
© 2001-2022 MODDING-FAQ FORUM | SMF
Alle Rechte vorbehalten.
Prüfe XHTML 1.0! Prüfe CSS!