Hallo
Ich selbst kann nicht Programmieren und befürchte das ich das ganze in
meinem Alter auch nicht mehr lernen werde.
Ein Programm mit einem serial Programmer und Pic Prog auf den Chip zu
schieben geht gerade noch so.
Zu meinem Problem: Ich wollte eine Wortuhr aus dem Franzis
Ping-Pong-Spiel bauen.
Kam nach einiger Zeit auf die Seite von Zabex, da er eine DCF77
gesteuerte Wortuhr hatte und die Software bereitstellte.
Allerdings sagt man in unseren Breitengraden "Es ist virtel vor" anstatt
"Dreivirtel".
Man sagte mir ich solle im main.c die Zeile 253
else if(g.uhrMM < 50){TEXT_DREI1; TEXT_VIERTEL;
}
mit der Zeile
else if(g.uhrMM < 20){TEXT_VIERTEL; TEXT_VOR;
}
ersetzen.
Das funktioniert auch wunderbar, jedoch wie erzeuge ich damit ein für
Ponyprog lesbares Programm (HEX o.ä.) und was muß ich setzen damit ich
mir den Atmega8 nicht zerschieße.
Vielen Dank im Vorraus
Du brauchst eine Toolchain. Also Compiler, Linker, Assembler und noch
ein paar Sachen. Am einfachsten lädst Du Dir von Atmel das Studio runter
und läßt Deine main.c passend für den Atmega8 (ist auf der pong platine
verbaut) übersetzen. Nach dem übersetzen und linken solltest Du dann
auch
ein .hex file finden. Das kannst Du auf den AVR schieben.
Wenn Du genau weiß, was Du tust, kannst Du auch Deine Änderungen im
Hex-File vornehmen. Ist aber etwas triky - vor allem wegen der Prüfsumme
am Ende jeder Zeile.
Schau mal im Internet nach, ob Du nicht einen Hex-Editor findest, der
das Ändern auch tatsächlich zulässt.
Der dir gesagt hat was du ändern sollst, kannst du den bitten für dich
die Änderung vorzunehmen und dann soll er das bin(hex) schicken, was
kannst du falschen? Üblicherweise ist das ein bin File.
Ich habe noch nie mit AVR gearbeitet ausser mit Arduino, also du würdest
einen Compiler (Crosstoolchain) benötigen, das kommt normalerweise als
Entwicklungsumgebung von Atmel, aber da müssen dir andere weiterhelfen.
weisnix schrieb:> Man sagte mir ich solle im main.c die Zeile 253> else if(g.uhrMM < 50){TEXT_DREI1; TEXT_VIERTEL;> }> mit der Zeile> else if(g.uhrMM < 20){TEXT_VIERTEL; TEXT_VOR;> }> ersetzen.
Das wird aber nicht die einzige Änderung sein.
Zum Beispiel der Unterschied "Viertel Sechs" oder "Viertel nach Fünf".
Beides ist die gleiche Zeitangabe, aber hier muß die Stunde noch
geändert werden.
O.k. das hört sich nach viel Arbeit an.
Damit kann ich meinem Bekannten nicht kommen. Da bekommt er nur wieder
Dollarzeichen in die Augen....
Ich muss mir also was einfallen lassen, oder mit der anderen
Sprachvariante leben.
Danke nochmal für die gutgemeinte Hilfe, es hätte ja auch mal einfach
werden können statt kompliziert.
mfg
weisnix
weisnix schrieb:> O.k. das hört sich nach viel Arbeit an.> Damit kann ich meinem Bekannten nicht kommen. Da bekommt er nur wieder> Dollarzeichen in die Augen....>> Ich muss mir also was einfallen lassen, oder mit der anderen> Sprachvariante leben.>> Danke nochmal für die gutgemeinte Hilfe, es hätte ja auch mal einfach> werden können statt kompliziert.>> mfg>> weisnix
Moment mal. Soooo kompliziert ist das nicht.
Wenn Du uns genau sagst, was für ein Betriebssystem Du hast, dann geht
die Installation in vielleicht drei oder vier Schritten. Hast Du in
einer Stunde oder weniger erledigt.
Um das Tutorial für absolute Anfänger hier zu zitieren:
"Auf dem PC muss das AVR-Studio, WinAvr und ggf. Ponyprog zum Übertragen
der Hex-Files installiert sein."
Das ist alles. Ponyprog hast Du ja schon. Also fehlt nur noch AVRStudio
und WinAVR. Da musst Du auch nicht die neueren Versionen nehmen. Die
älteren reichen und die sind noch relativ klein und einfacher zu
bedienen.
Ich habs mal schnell kompiliert. Ein paar Warnings, aber nicht weiter
schlimm.
1
Warning 1 variable 'pulsdauer' set but not used [-Wunused-but-set-variable] C:\Transfer\GccApplication1\GccApplication1\GccApplication1.c 395 5 GccApplication1
2
Warning 2 variable 'neuesDatum' set but not used [-Wunused-but-set-variable] C:\Transfer\GccApplication1\GccApplication1\GccApplication1.c 390 12 GccApplication1
3
Warning 3 variable 'monat' set but not used [-Wunused-but-set-variable] C:\Transfer\GccApplication1\GccApplication1\GccApplication1.c 389 23 GccApplication1
4
Warning 4 variable 'wtag' set but not used [-Wunused-but-set-variable] C:\Transfer\GccApplication1\GccApplication1\GccApplication1.c 389 17 GccApplication1
5
Warning 5 variable 'tag' set but not used [-Wunused-but-set-variable] C:\Transfer\GccApplication1\GccApplication1\GccApplication1.c 389 12 GccApplication1
6
Warning 6 variable 'ss' set but not used [-Wunused-but-set-variable] C:\Transfer\GccApplication1\GccApplication1\GccApplication1.c 386 18 GccApplication1
Was willst Du genau geändert haben?
Grüsse,
René
PS: ich spreche kein Hessisch :-)
René H. schrieb:> Was willst Du genau geändert haben?
Man sagte mir ich solle im main.c die Zeile 253
else if(g.uhrMM < 50){TEXT_DREI1; TEXT_VIERTEL;
}
mit der Zeile
else if(g.uhrMM < 20){TEXT_VIERTEL; TEXT_VOR;
}
ersetzen.
Also zur verfügung stehen 2 Rechner wobei auf dem einen Linux mint 17.3
Rosa läuft, auf dem anderen XP . Mit Linux selbst hab ich wiederum
nichts zu tun, Ich hab mit Ach und Krach nen Drucker zum Laufen
bekommen.
PonyProg ist installiert auf dem Windows Rechner.Die anderen Programme
WinAVR und AtmelStudio müsste ich nachinstallieren.
PS: ein USBASP steht auch noch zur Verfügung.
Mann Mann Mann, Heute ist doch erst der 22 Dezember, So früh hab ich
nicht mit nem Weihnachtsgeschenk gerechnet.
Vielen herzlichen Dank.
Hab trotzdem nochmal eine frage zu den zu ersetzenden Zeilen .
Was bedeuten die Zahlen hinter der spitzen Klammer < 50 und <20
weisnix schrieb:> Mann Mann Mann, Heute ist doch erst der 22 Dezember, So früh hab ich> nicht mit nem Weihnachtsgeschenk gerechnet.>> Vielen herzlichen Dank.>> Hab trotzdem nochmal eine frage zu den zu ersetzenden Zeilen .>> Was bedeuten die Zahlen hinter der spitzen Klammer < 50 und <20
Kleiner als....
Wenn Du mir genau sagst, was Du haben willst (also Textmässig) kann ich
Dir das machen, dass ist wirklich nicht der Aufwand. Aber ich muss es
wissen, da ich dem Hessisch nicht mächtig bin.
Also z.B: drei Viertel Fünf statt Viertel vor Sechs (oder wie auch
immer).
Hilfer schrieb:> Hessisch spreche ich auch nur nach ein paar Flaschen ... irgendwas. :-)
Ich bin Schweizer, nach ein paar Flaschen reicht das bestenfalls zum
Berndüütsch....
René H. schrieb:> Hilfer schrieb:>> Hessisch spreche ich auch nur nach ein paar Flaschen ... irgendwas. :-)>> Ich bin Schweizer, nach ein paar Flaschen reicht das bestenfalls zum> Berndüütsch....
Dachte ich mir schon, aufgrund des Rufzeichens. Muss immer an die gute
alte HB9CV denken.
Bern? Da böte sich doch ein Neuenburger Schwarzschräubchen an. Zum Wohl.
:-)
Hab nochmal ein bischen gegoogelt und wiederum hier aber bei einem
anderen Beitrag gelandet.
https://www.mikrocontroller.net/articles/Word_Clock#Deutsch_.283-sprachig.29
Wessi-Modus:
es ist ein uhr
es ist fünf nach eins
es ist zehn nach eins
es ist viertel nach eins
es ist zehn vor halb zwei
es ist fünf vor halb zwei
es ist halb zwei
es ist fünf nach halb zwei
es ist zehn nach halb zwei
es ist viertel vor zwei
es ist zehn vor zwei
es ist fünf vor zwei
Rhein-Ruhr-Modus:
es ist ein uhr
es ist fünf nach eins
es ist zehn nach eins
es ist viertel nach eins
es ist zwanzig nach eins
es ist fünf vor halb zwei
es ist halb zwei
es ist fünf nach halb zwei
es ist zwanzig vor zwei
es ist viertel vor zwei
es ist zehn vor zwei
es ist fünf vor zwei
Ossi-Modus:
es ist ein uhr
es ist fünf nach eins
es ist zehn nach eins
es ist viertel zwei
es ist zehn vor halb zwei
es ist fünf vor halb zwei
es ist halb zwei
es ist fünf nach halb zwei
es ist zehn nach halb zwei
es ist dreiviertel zwei
es ist zehn vor zwei
es ist fünf vor zwei
Das wäre dann der Rhein-Ruhr-Modus.
René wenn du das mal machen könntest....Mein Dank würde dir ewig
nachschleichen, dich vermutlich aber nie erreichen......
Gruß Weisnix (do1frw)
@ Weisnix
Das ist ja im Originalcode schon so.
@ Rene
Mir fällt gerade auf, dass ich Dich möglicherweise in die Irre geführt
habe - falls Du Dich denn in die Irre hast führen lassen ...
Ich habe hier Beitrag "Re: main.c ändern und als .Hex absprichern?" auf
Deine Frage, was denn geändert werden soll, den Text aus dem
Eröffnungspost zitiert:
> Man sagte mir ich solle im main.c die Zeile 253> else if(g.uhrMM < 50){TEXT_DREI1; TEXT_VIERTEL;> }> mit der Zeile> else if(g.uhrMM < 20){TEXT_VIERTEL; TEXT_VOR;> }> ersetzen.
Allerdings war im Originalcode diese Ersetzung sinngemäß, aber nicht
wörtlich, schon gemacht worden.
Neu:
> else if(g.uhrMM < 50){TEXT_VIERTEL; TEXT_VOR;
Ich fürchte nun, dass Du möglicherweise genau diese Ersetzung gemacht
haben könntest.
Neu (aber falsch):
> else if(g.uhrMM < 20){TEXT_VIERTEL; TEXT_VOR;
Ich nehme an, dass es Dir aufgefallen ist, aber es schadet ja nichts,
wenn ich es erwähne.
Tut mir leid.
ja, diese Änderung hatte ich bereits gemacht. Deshalb auch die Frage was
die Zahlen hinter dem "Kleiner als" Zeichen zu bedeuten haben.
Ich sollte Zeile 253 die original so aussieht
else if(g.uhrMM < 50){TEXT_DREI1; TEXT_VIERTEL;
}
ändern in:
else if(g.uhrMM < 20){TEXT_VIERTEL; TEXT_VOR;
}
Habe aber geändert in:
else if(g.uhrMM < 50){TEXT_VIERTEL; TEXT_VOR;
}
da ich nur vermute, daß die Zahl wohl bleibt, der Text sich dahinter
aber ändert, sonst wäre es ja das selbe wie :
else if(g.uhrMM < 20){TEXT_VIERTEL; TEXT_NACH; }
Stimmt das so?
oder liege ich damit total daneben?
weisnix schrieb:> ja, diese Änderung hatte ich bereits gemacht.
Na ja. Es wäre nützlich gewesen das zu erwähnen und nützlich gewesen,
wenn ich es vorher nachgeprüft hätte, bevor ich René antwortete.
Hoffentlich ist es ihm aufgefallen. Aber Du kannst den Code ja einfach
schonmal in den AVR programmieren, dann siehst Du es.
Zwischen den Minuten 45 und 54 (inklusive müsste die Ausgabe "zehn vor"
sein, falls das schief gelaufen ist.
> [...]> da ich nur vermute, daß die Zahl wohl bleibt, der Text sich dahinter> aber ändert,> [...]> Stimmt das so?> oder liege ich damit total daneben?
Nein. Das ist ganz richtig so.
René H. schrieb:> Ich werde das neu durchgehen, mit der Liste von oben.
Hast du auch das mit bedacht?:
Huh schrieb:> Zum Beispiel der Unterschied "Viertel Sechs" oder "Viertel nach Fünf".>> Beides ist die gleiche Zeitangabe, aber hier muß die Stunde noch> geändert werden.
René H. schrieb:> Geändert hatte ich am Original Code nichts, da es wie mir schien, schon> gemacht worden ist.>> Ich werde das neu durchgehen, mit der Liste von oben.
Falls Du auf meine Meinung noch Wert legst ...
Ich habe das auch mal verglichen und dabei ist mir überhaupt erst
aufgefallen, dass der Code schon dem "Rhein-Ruhr"-Modus entspricht.
Jedenfalls stimmt der Code so, denke ich. Hüstel. :-)
Teste es einfach mal und melde Dich wieder sollte etwas nicht so sein,
wie Du es Dir vorstellst.
Grüsse,
René
Hilfer schrieb:> Bern? Da böte sich doch ein Neuenburger Schwarzschräubchen an. Zum Wohl.> :-)
Nein, nein. Ich bin Luzerner, ein Innerschweizer.
Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
Groß- und Kleinschreibung verwenden
Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang