Hallo! Ich habe mir bei "http://www.mikrocontroller.com/de/avr-ctrl.php" eine "AVR-Ctrl"-Platine bestellt, diese bestückt und da ich keine Ahnung von der ganzen Materie habe, im Downloadbereich das Demo Programm "Demo1b" runtergeladen. (Controller: Atmega32) Weiters habe ich mir die neueste Version von WinAVR installiert, sowie PonyProg. Als erstes habe ich natürlich versucht das Programm auf den Controller zu übertragen, und da ist auch schon mein Problem: Überspiele ich die "AVRmain.hex" läuft alles einwandfrei. Überspiele ich aber die "main.hex" flimmern nur ein Paar Buchstaben im Dislay, die vermuten lassen dass es ungefähr so was bedeuten sollte wie bei "AVRmain.hex". Das wäre ja auch noch nicht so schlimm da ich ja nun weiß dass alles funktioniert, aber wenn ich das Programm umschreiben möchte steht mir scheinbar nur die main-datei zur verfügung und selbst wenn ich nur text ändere passiert immer das was ich oben beschrieben habe, flimmern! wundert mich auch nicht denn wenn die Ursprungsdatei main.hex schon nicht funktioniert, warum sollte dann etwas anderes. Hier jetzt meine Bitte: kann das jemand nachvollziehen bzw. ausprobieren und mir dann bescheid geben. Habe auch schon versucht mit einem kleinen Programm einfach alle PINs auf high zu setzten, und zwar so: #include <avr/io.h> int main (void) { { DDRA = 0xff; PORTA = 0b11111111; DDRB = 0xff; PORTB = 0b11111111; DDRC = 0xff; PORTC = 0b11111111; DDRD = 0xff; PORTD = 0b11111111; } } Ich kanns einwandfrei copilieren und überspielen, aber passiert ist noch nichts, kein leuchten oder so? mache ich einen sehr großen Fehler, oder wie müsste der Programmcode aussehen? sollte ich überhaupt aufhören mit mikrocontrolllern zu experimentieren? bitte bitte helft mir!!! Georg
> DDRA = 0xff;
Das setzt die Pins auf Eingang.
Ausgang geht so:
DDRA = 0x00;
Nein, er setzt sie auf Ausgang ;) Sollte funktionieren..zeig ma deine schaltung?
Proramm sollte so lauten #include <avr/io.h> void main (void) { while(1) //Ganz Wichtig!!!!!! { DDRA = 0xff; PORTA = 0b11111111; DDRB = 0xff; PORTB = 0b11111111; DDRC = 0xff; PORTC = 0b11111111; DDRD = 0xff; PORTD = 0b11111111; } }
>Nein, er setzt sie auf Ausgang ;) Arrgh, jetzt war ich gerade wieder bei den PIC. Muss das eigentlich jeder anders machen ;) @ Georg Ignoriere meinen Post :(
>steht mir scheinbar nur die main-datei zur verfügung und selbst wenn ich >nur text ändere passiert immer das was ich oben >beschrieben habe, flimmern! So ein Display flimmert gerne wenn man sowas macht: while(1) { Lösche Display Schreibe Text } Der Text ist gerade geschrieben und dann wird er sofort wieder gelöscht und neu geschrieben, und wieder gelöscht......
Hmm.. Stöpsel mal den Programmer vom Prozessor ab, und guck, ob die Reset-leitung auf High liegt.
@Holger: es ist nicht so ein Flimmern wie du denkst, es schreibt statt "holger Buss menue Demo" abwechselnd alle buchstben auf einem Zeichen manchal auch auf zwei oder mehr oder überhaupt nur irgendwelche wirren zeichen wie Fragezeichen, pfeile und punkte. @Sir alan Teplotaxl: bin dabei dauert aber noch kurz
@Hans Ganz: Die Schaltung ist auf "http://www.mikrocontroller.com/de/avr-ctrl.php" im unteren viertel der website.
>@Holger: es ist nicht so ein Flimmern wie du denkst, es schreibt statt >"holger Buss menue Demo" abwechselnd alle buchstben auf einem Zeichen >manchal auch auf zwei oder mehr oder überhaupt nur irgendwelche wirren >zeichen wie Fragezeichen, pfeile und punkte. Das ist auch kein Wunder wenn ich mir den Quellcode ansehe ;) Der ist von 2005. Delays mit for() Schleifen in lcd.c. Herzlichen Glückwunsch. Das klappt bei einem optimierenden Compiler nie. Gleich zurückschicken das Teil und Geld zurück verlangen.
Wie meinst du das, die Platine hat doch nichts damit zu tun wie ich meine Delays Programmier oder?
Das heißt, dass das Programm laufen sollte. Es soll auch schon fälle gegeben haben, bei denen der LPT-Progger Reset ständig auf low gezogen hat. Nen pullup ist dran? Du misst doch hoffentlich gegen GND ;)
Guten Morgen! JA also Pullup is dran und gegen Masse habe ich auch gemessen. Also vielleicht mach ich bei der Programmierung einen Fehler: Programmers Notepad (PN) -> Programm schreiben Mfile -> Makefile erstellen mit den Parametern: - main file name - main - MCU-type - Atmega32 - Pogrammer - dt006 - Port - Lpt1 PN -> Main compilieren Mikrocontroller an Pc anschließen und die Stromversorgung einschalten Ponyprog - Hex-file auf controller schreiben ISP Kabel abstecken und eventuell den controller nochmal aus und einschalten (wohl eher nur aus hoffnung hatte noch keinen erfolg damit) Der Fehler muss doch irgendwo bei der Programmierung liegen, sonst würde doch das Demoprogramm auch nicht funktionieren oder?
Hier mal die Schaltung, kann es sein dass ich die Ausgänge alle auf low setzen muss damit das LED array leuchtet?
>Hier mal die Schaltung, kann es sein dass ich die Ausgänge alle auf low >setzen muss damit das LED array leuchtet? Einfach mal ausprobieren?
Hallo alle Zusammen! nach langem Studieren der Schaltung und einem Geistesblitz habe ich das LED Array umgedreht und siehe da kaum ist es nicht in Sperrichtung eingebaut funktioniert alles so wie es sollte!! zumindest alle Ausgänge auf 1 oder 0 setzen. Danke für eure Hilfe und einen schönen Abend wünscht euch Georg
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.