Hallo,
Ich habe mir eine Experimentierplatine gebaut mit nen Atmega8 drauf als
Programmer. Weil den originalen HEX-datei ein bisschen geandert sein
soll, habe ich von jemand den origialen Quelkode bekomen. Ich hatte
einiges geandert im Quelkode und dan hochgeladen im AVR-Studio.
Es gab oft Fehlermeldungen, und sah das es wegen den falschen
directories war. Na ja, habe dan also alles nochmals unter der Lupe
genomen und korrigiert. Dann bemerkte ich das ich auch WinAVR brauchen
sollte. Hmm,. OK, AVR-Studio de-installiert, WinAVR installiert und
spaeter AVR-Studio.
Jetzt gab es keine Fehlermeldungen mehr wenn ich einer .aps-file mit
AVR-Studio hochgeladen hatte.
Hier mal wie ich es gemacht habe unter AVR-Studio : AVR-Studio laden,
dan den .aps anzeigen, "Next" drucken und dan "AVR-Simulator"
selektieren und "Atmega8". Demnaechst habe ich der Taste F7 (Build)
gedruckt.
So weit sah es gut aus, bekam sogar eine HEX-file. Wenn ich den auf der
Atmega8 programmiert hatte, bemerkte ich das etwas doch falsch gelaufen
war. Wie es aussah, war das ich wahrlscheinlich noch immer der vorherige
(unmodifizierte) Quelkode gebraucht hatte fuer das zusammenbauen der
HEX-file.
Ich glaube ich sollte dan etwas erst mit WinAVR machen, aber ich habe
keine Ahnung was genau / wie ich es machen soll. Ich arbeite selber
immer mit Bascom, und habe deswegen minimaler / keiner Erfahrungen mit
AVR-Studio und gar keine mit WinAVR.
Koente jemand mir den Weg zeigen, wie ich es richtig machen soll ?
P.S.1 Meine Entschueldigungen fuer meine schlechte Deutschsprache.
(Komme aus die Niederlande)
P.S.2. Weil ich glaube, man moechte unbedingt gerne wissen warum es sich
handelte, habe ich mal Fotos mitgeliefert der Prototype. (Trotzdem, der
Atmega8 ist an der Unterseite verloetet)
Ich sehe jetzt schoen, wie viel (oder besser gesagt : wenig) ich wuste
von WinAVR. Ich dachte AVR-GCC sei etwas ganz anderes. Moechte dir
deshalb danken fuer die Verweisung ! Ich werde mal Zeit dafur nehmen.
Hat es tatsechlich Sinn den Schaltplan zu zeigen ? Der Platine ist etwas
geandert, aber fuer den Atmega8 gab es keine wesentliche Aenderungen.
Weiterhin soll ich aufmerken das ich mir nicht genau sicher bin ob ich
den Quelkoden zeigen koente, weil ich es im Vertrauen bekommen habe. Ich
werde mal nachfragen.
Aber, wie ich es verstehe von dir, ich soll hier erst den Quelkoden
veroffenbaren, zusammen mit der Schalplan der Platine. Ich hatte keine
Aehnung das so etwas benoetigd sei um am Ende Rat zu bekommen womit ich
selber eine korrekten HEX-file bauen kann unter WinAVR / AVR-Studio.
Wenn es nur um die Bedienung von AVR Studio oder WinAVR geht, braucht du
den Schaltplan und den Quellcode nicht zu zeigen. Mit etwas lesen im
Tutorial kommst du wahrscheinlich selbst auf die Lösung.
Aber wenn du Funktionsproblem bei deinem Programm hast und/oder
Fehlermeldungen beim Kompilieren, dann solltest du Quellcode und
Schaltplan (und Copy&Paste Text der Fehlermeldungen) zeigen. Das erhöht
die Chance, dass jemand versucht dir zu helfen.
Habe gerade mal Nachfrage gemacht, und dan ist klar geworden was
wirklich loess war. Man wuste nicht mehr wie das ging, weil man es lange
her mit gebastelt hatte, uzw. Am Ende habe ich endlich verstanden das es
sich um eine Open Source-projekt handelte : AVR-Doper.
Manchmal nimmt es einige E-Mail mit kritischen Fragen, um
herauszufinden, dass jemand sich den Autor der Quelkode vortäuscht.
OK, gehe ich mal los.
Also, es handelt sich um den Atmega8 die sich als AVRisp-programmierer
umwandeln last. Was ich versuche ist den "default ISP-frequency" zu
aendern im Quelkode und das es daneben eine 1 MHz Signal am OC1B (Pin
B2) gibt.
Im Anfang bekam ich sofort einige Fehlermeldungen im AVR Studio, wen ich
den "AVRIsp.aps" laden wollte. Aber ich bemerkte das es sich wegen
falschen "directories" im "AVRIsp.aps" und "avrisp.aws" handelte. Habe
das dann sofort korrigiert und seitdem keine Fehlermeldungen.
Dan warum es sich tatsaechlich handelte :
Normalerweise ist eine ISP-frequency von etwa 920 KHz selektiert. Ich
moechte es aber aendern nach demnaechsten schnellem ISP-frequency (etwa
230 KHz).. Daneben das unter AVR Studio keine hoehere ISP-frequency zu
seleketieren ist.
Original gab es im "isp.c" folgendes (linie 95 - 105) :
Also, ich habe einfach den "if(stk500Delay == 0 ..." weggelassen, und
damit fertig. Ab jetzt kan man trotzdem eine hoehe ISP-frequency sehen /
selektieren im AVR Studio, aber im Hintergrund passiert etwas anderes
(demnachsten ISP-freq. selektiert)
Im stk500protocol.c (linie 39) gab es auch noch :
1
0, 0, 0, 0, 0, 0, 0, 0,
Das ist jetzt "1, 0, 0, 0, 0, 0, 0, 0," womit ich default den
erstfolgendem ISP-freq selektiere (stk500Delay wird 1).
Also, das funktioniert wie ich es "sogar" haben moechte. Na ja, hatte
lieber das den 930 KHz nicht gezeicht wurde, aber so geht es auch.
Dan, der 1 Mhz Signal am Pin B2. Die gab es schoen im Quelkode. Habe
nichts geandert.
Wenn ich mit AVR Studio eine HEX-datei machen wollte, gab es noch 2
Warnungen (siehe Anhang : Screendump). Ich dachte, eine Warnung ist was
anderes als eine Fehler. Habe dan auch den HEX-datei im Atmega8
programmiert. Dan gab es den Aerger. Den Atmega8 auf Platine geloetet,
Treiber installiert und dan mit USB-kabel am PC verbunden. Dan AVR
Studio hochladen und den Programmer selektieren. Geht wunderbar ! AVR
Studio hat den gewunschten ISP-freq selektiert. Trotzdem bemerkte ich
das den 1 MHz-signal fehlte am Pin B2. Na nun ? Da hatte ich ja nichts
ge-aendert...
Ingesamt hatte ich hier 8 St. ATMega8. Schoen 7 sind falsch programmiert
worden, und aus Aerger schoen 3 weggeschmissen. Habe nur noch einer
Atmega8 hier liegen und moechte es deswegen diesmal richtig machen.
OK,. ab jetzt gibt es dan auch den Quelkoden.
Ich hoffe ich werde endlich lesen koennen was ich falsch mache, oder das
es jemand gibt der mir den gesuchten HEX-file machen koente.
Bernard
OK, sah das es noch einige falsche Verweisungen gab.
Habe deshalb alles nochmals kontroliert und was noetig war, ge-andert.
Wenn man es selber testen moechten, bitte Aenderungen der "Directories"
im folgender "Files" sind benoetigt :
- AVRIsp.aps
- avrisp.aws
- default\AVRIsp.map
Ich habe "AVRIsp.aps" hochgeladen in AVR Studio und versuchte dan mit
"F7"-Taste (Build) eine HEX-file zu bauen. Dan gab es jedoch noch
Warnungen :
In Linien 08) bis 13) wird angegeben das es Schwierigkeiten gibt in
stk500protocol.c, linie 135. Wenn ich es gut verstanden habe, heist es
das ich eine Wert in einer String setzen wollte und das damit Probleme
gibt. Oder ist etwas anderes loes ? Wie gesagt, ich habe keine Ahnung
von Programmieren in AVR-gcc.
Also, bitte, bitte, bitte, wer koente mir angeben um was fuer ein
Problem es sich tatsaechlig handelt, und wie es korrigiert werden soll.
Die Warnung heisst, das Du Arrays von Zeichen an strcpy_P übergeben
willst, die Zeichen aber mal ein Vorzeichen und mal keines haben.
Es gibt z.B. unsigned char und resp. char
Beim ersten gibt es kein Vorzeichen (Voorteken {Wiskunde})
Beim zweiten aber doch.
Du musst darauf achten, das diese Angaben, die sogenannten Typen
übereinstimmen oder dafür sorgen das sie es tun (cast).
Lies bitte ein gutes C-Buch. Ich vermute mal das es den
Kernighan/Ritchie auch auf Niederländisch gibt.
Ist es korrekt wenn ich folgendes sage : Wenn es um eine Fehler handelt,
soll mann den Quellkode aendern. Wenn es eine Warnung gibt, koente
mann es ueberlegen der Quellkode zu aendern.
Wie schoen angegeben, ich habe keine / minimale Erfahrung mit der
C-sprache. Ich bin schoen froh das ich den minimalistischen Aenderungen
machen koennte.
ANMERKUNG : Ich habe voellig verstandnis dafur, das Leute weniger
behilflich sein wenn ich folgendes aufmerke.
Bis jetzt erfahre ich die Hilfe so : Ich habe eine PKW und moechte nach
meine Arbeit fahren. Weil ich hinfahre, bemerke ich das eine Gluhbirne /
Lampe kaput ist gegangen. Ich suche mal im Kofferraum und ja, da gibt es
glucklicherweise noch eine extra. Nah, dan wird ich es mal umtauschen.
Ohoo, wie geht das eigentlich ? Mal einer fragen. Und dan bekomme
folgender Rat : "Erst eine Studium Autotechnik machen und dann wirst du
es schaffen..."
Dies Programmierer ist ein kleines Teil der ganze Platine. Ich moechte
gerne mit Bascom und diese Platine experimentieren (ja, es gibt noch
eine AVR auf diese Platine). Wenn diese Programmer funzt, ist diese
Platine fertig.
Vielleicht sollte ich dann ein Angebot machen : Wer moechte eine neue
2x16 LCD empfangen oder 25 St. weisse SMD LEDs ? Ich frage nur den
Quellkode zu aendern, so dass es keine Error- oder Warnungmeldungen mehr
gibt und der Programmer funktioniert mit nen max. ISP-frequency von etwa
230 KHz und eine 1 MHz Signal am Pin B2. Quellkode ist vorhanden, die
gewunschte Aenderungen sind auch schoen gemacht....
Hmm,. ich bin gespannt was mann hierunter fuer Berichte schreiben
wird...
@ Bernard
Ich habe mich vielleicht geirrt. Ich dachte, Du möchtest das Problem
verstehen. Aber, nein. Du möchtest das Problem nur gelöst haben.
Das ist gut und recht so. Aber das hättest Du vorher schreiben sollen.
Ich wollte Dich dahin bringen, es selbst Du zu tun. Ich wollte, das Du
die Fähigkeit hast das Problem selbst zu lesen.
Dazu gehört eben Lernen.
Aber, Du möchtest lieber konsumieren. In die Werkstatt fahren. Den
Fachmann fragen.
Ich habe Dir den Grund für das Problem erklärt. Ich habe Dir erklärt wie
Du es lösen kannst.
Aber ich habe vermutet, dass Du das Problem nicht verstehst und das Du
nicht verstehst wie es zu lösen ist.
Deswegen habe ich Dir das Buch empfohlen.
Ich denke ich war höflich und respektvoll. Es war kein Ärger in mir,
keine Ironie, als ich Dir geantwortet habe.
Aber ich bin nicht der einzige hier.
Manche Leute ändern Dir, ohne Frage, den Quellcode.
Nur ich mache das nicht.
Tut mir auch nicht leid. Das ist mein Weg, damit umzugehen. Es geht
nicht um Belohnung. Bitte behalte Dein Display.
Huch :
Ich moechte gerne wissen wie ich es loesen kann. Aber mir fehlt den
Wissenschaft es zu machen. Ich verstehe ganz gut was du meinst und habe
100% Verstandnis dafur. Es ist nur das ich mir aergere das ich zu wenig
Aehnung habe von WinAVR. Ich hatte gerne das ich genuegend mit WinAVR
gebastelt hatte so dass ich selber der Ursache des Problem aufheben
koennte.
Meine Schwache ist das ich bisher nur mit Bascom gespielt habe und
WinAVR zu lernen habe. Am Ende, wenn ich gut mit WinAVR programmieren
kann, damit den Quellkode richtig zu aendern koennen, ist das Problem
der Atmega8 / Programmieren geloest. Aber, dan werde ich sehr
wahrscheinlich wieder mit Bascom basteln (habe eine Lizenz dafur
gekauft). Hoeffe das ich hier gut angegeben habe was fuer mich das
Problem ist....
Also, kein Aerger gegen dir oder anderen, nur aerger auf mich selber.
Und ich versuchte es deutlich an zu geben, wie ich es bis jetzt erfahren
habe.
Also, lernen der C-sprache : Ja, gerne. Es fragt trotzdem viel Zeit in
verhaltnis meiner gesuchte Loesung. Deshalb dachte ich das es vielleicht
jemand gibt der mir weiterhelfen kan (gemeint : Quellkode aendern oder
tatsachlich in die Tiefe gehen, wegen der angehaengten Quellkode). Es
wurde hier naemlich gebeten den Quellkode und der Schaltplan zu
veroffentlichen.
Immerhin, wegen der erwartete Arbeit moechte ich ebenfalls gerne etwas
gegenuber stellen. Kein Problem. Deshalb hatte ich es auch angegeboten,
aber weiss das es einiger aergern wird, wie ich es geschrieben habe.
Viele werden es erfahren als suche ich nur eine rasche Loesung, was
wesentlich auch stimmt. Ich hoeffe nur das mann auch versteht warum ich
manche Dinge so geschrieben habe.
Habe deshalb Fett geschrieben : ANMERKUNG. Vielleicht sollte ich
ENTSCHUELDIGUNG statt ANMERKUNG geschrieben haben.
Huch
Habe es ge-aendert. Ich werde unter AVR Studio versuchen einen HEX-file
zu machen.
Ich habe gerade ein Problem mit Windows. Gefolg : ich brauche WinAVR
erneut zu installieren, zussammen mit AVR Studio. Wird ich schoen
schaffen.
Ich gehe davon aus das mit deiner Kode das Problem geloescht wird.
Und jetzt moechte ich gerne zurueck kommen, was ich versprochen habe :
bitte melde dir (e-mail), wenn ich dir helfen koente mit einer 2x16 LCD
oder einige weisse SMD LEDs.
In Niederlande sagt mann : Een man een man, een woord een woord. (Etwas
wie : Was mann verspricht, wird man auch machen / tun)
OK, habe gerade alles erneut installiert, auch die letzte Version des
WinAVR (WinAVR-20100110-install.exe).
Bekam eine Fehler, wegen andere Namen manche WinAVR-directories.
Brauchte nur noch die alte Directory-namen zu aendern (4.2.2 => 4.3.3).
AVR Studio gestartet und "APSIsp.aps" hochgeladen : perfekt !
Dann die befurchtete "F7"-Taste (Build) gedruckt und ....
1
../stk500protocol.c: In function 'stkEvaluateRxMessage':
2
../stk500protocol.c:134: warning: pointer targets in initialization differ in signedness
Toll, eine Meldung ist verschwunden ! Also, du hast genau angezeigt was
loes war. Macht mir froh. Sollte den restlichen Warnung handeln um eine
kritischen Sache, oder kann ich ab jetzt der HEX-datei im Atmega8
brennen ?
EDIT> Schon gut. Erzähl mir lieber, ob Du das hier kennst:
Unglaublich ! Wunderschoen wie so etwas gemacht wurde. Ich habe nie so
etwas vorher gesehen. Ich hatte den Film 2 mal ansehen mussen, bevor ich
wusste was ich sah. Wen meine Kinder so etwas ansehen, haben die
bestimmt viel Spass am Meer.
Sorry, mein Fehler. Ich hätte noch nach dem Datentyp von txBuffer prüfen
sollen.
Wie ich sehe hat der Autor sehr oft unsigned char (resp. uchar)
verwendet. Wenn dann Warnings auftreten hätte er das eigentlich
korrigieren sollen.
Und für eigentliche Zeichen nimmt man sowieso besser char.
Im allgemeinen ist es nur dann ratsam Warnungen zu ignorieren wenn man
weiss was sie verursacht. Sonst niemals.
Ich schlage dennoch vor, das Du die Warnings ignorierst.
Aber an sich sollte man das ganze Programm nochmal durchgehen und die
Datentypen korrigieren. Die Version ist wohl von 2006. Gibts keine
neuere?
Wenn ich es richtig verstanden habe, handelt es sich um die Abwicklung
eine Fehlermeldung. Nun ja, bin mir nicht sicher ob es wirklich
Problemen geben wurde wenn ich es ignoriere. Ich glaube nicht...
Diese Programmer wurde bereits mit diese Quellkode verkauft (wovon ich
dachte das er die .. ahum .. originale Autor war).
Wenn ich Dir gut verstanden habe, koennte ich am besten alle "uchar" mit
"char" umtauschen im stk500protocol.c ?
Habe gerade noch die Seite der tatseachlichen Autor
angesehen.(http://www.obdev.at/products/vusb/download.html) Scheint das
es verschiedene "updates" gibt zum download, bis 2010.
Habe die letzte Version runtergeladen (vusb-20100715.zip). Da gab es
verschiedene Schaltplane mit dabei. Aber, es gab soviel Informationen
das ich nicht weiss was ich tun soll.
Ok, ich werde mir Morgen hier wieder melden.
>Wenn ich Dir gut verstanden habe, koennte ich am besten alle "uchar" mit>"char" umtauschen im stk500protocol.c ?
Nein. Das schaffst Du nicht. Als Bastellösung geht es wahrscheinlich so.
Lasse es wie es ist. Teste das erstmal, ob es geht.
Das ist alles sowieso eine Gratwanderung. Darüber solltest Du Dir klar
sein.
Entweder es geht beim ersten Versuch oder nicht.
Es geht eben nicht darum, nur eine Glühbirne zu wechseln. Das ist eher
ein Getriebewechsel.
Habe gerade auch mal die Seite der AVR Doper
besucht(http://www.obdev.at/products/vusb/avrdoper.html), und sah das es
tatseachlich neue Daten vorhanden sind (bis 2008).
Wenn der Schaltplan ungeanderd ist, dan ist es vielleicht interessant
mit die neue Quellkode an zu fangen.
Heute-abend habe ich wieder Zeit zum basteln. Werde mich dan wieder
melden und angeben was ich gemacht habe mit der HEX-datei.
Atmega8 ist programmiert worden, aufgeloetet und getestet. Habe mit AVR
Studio versicht ob ich kontakt habe mit der onboard AVR, und es seht gut
aus ! Deshalb moechte ich Dir gerne danken fuer deine Hilfe.
Dan gibt es noch was ich versprochen habe. Koente ich Dir mittels einer
"Tierischen" eMail erreichen ?
>Dan gibt es noch was ich versprochen habe. Koente ich Dir mittels einer>"Tierischen" eMail erreichen ?
Ich bitte Dich höflich, nicht weiter darauf zu bestehen. Auf eine
Belohnung lege ich in diesen Fall keinen Wert.
Freut mich, dass es geht.
Viel Erfolg.