Hey Leute, habe momentan ein LED-Cube Projekt, das ganze läuft über das normale Atmel Evaluierungsboard mit einem Atmega16, davon hab ich ein40 poliges Kabel auf eine externe Platine gezogen, rest siehe Schaltplan! Desweiteren ist noch ein Decoder angeschlossen um in einem Menü hoch/runter zuscrollen um das gewünschte Programm auswählen zu können, funktioniert auch. Doch leider hab ich einen kleinen Wurm drin, das Display zeigt momentan diese Hieroglyphen an: Siehe Bild im Anhang Display.jpg Doch manchmal funktioniert das Display auch, zeigt also mein programmiertes Programm dazu an... Hat jemand dazu evtl eine Lösung wodran das liegen kann? mfg Marvin
Müsstest mal in der ASCII Tabelle nachschauen, was das für Codes sind. Wenn du danach einen Blick in dein Programm wirfst, weisst du schon mehr. Irgendwas vertauscht oder so. Gruss Gordon
Das komische ist ja, dass es mit einem anderen Board kurzzeitig funktionierte, bzw. funktionierte es vor 3Stunden auch noch, doch dann macht es faxen!
>funktionierte es vor 3Stunden auch noch, doch dann >macht es faxen! Manchmal dauert es halt bis ein Bufferindex oder der Stack überläuft;)
Auch ohne das Programm werden mir die Hieroglyphen angezeigt... Wie muss ich die denn konvertieren, dass mir was gescheites angezeigt wird? Habe momentan nur das hier drin:
1 | #define F_CPU 16000000UL
|
2 | |
3 | #include <avr/io.h> |
4 | #include <stdlib.h> |
5 | #include <util/delay.h> |
6 | #include <avr/iom16.h> |
7 | #include <avr/interrupt.h> |
8 | #include "lcd-routines.c" |
9 | #include "LED-Cube_Prog.h" |
10 | |
11 | #define Programmamzahl 8
|
12 | #define Textlaenge 17
|
13 | |
14 | int main(void) |
15 | {
|
16 | // Schaltet Ports frei
|
17 | DDRD = 0xFF; |
18 | |
19 | lcd_clear(); |
20 | lcd_setcursor(0,1); |
21 | lcd_string("LED-Cube bereit!"); |
22 | lcd_setcursor(0,2); |
23 | lcd_string("Drehen fuer Menu"); |
24 | |
25 | while(1) |
26 | {
|
27 | |
28 | }
|
29 | |
30 | loop: goto loop; |
31 | }
|
Wo musste man noch glatt online den Code einfügen?^^
Kann es sein, dass du lcd_init() und lcd_enable() noch aufrufen musst? Evtl. gleich am Beginn noch ein Delay einbauen...
Mit LCD_init und Enable schaut es schonmal ganz gut aus, das Testprogramm zumindest, doch das mein Quellcode jetzt schon 9306 Byte hat ist wohl auch nicht ganz normal...
Brauchst du echt alle Header? avr/io.h und avr/iom16.h tun doch das gleiche. Und die stdlib.h braucht man auch nicht zwingend. Wenn du Zahlen in ASCII umwandeln willst, musst du auf den Wert nur 0x60 draufzählen. Weiss nicht wie viel das ausmacht, aber sonst is ja net viel da!
Hallo! Quellcode kbnn auch mehrere Megabytes haben, und dann doch in den 1K-Tiny passen!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.