Hallo zusammen, ich habe Probleme damit, einen fertigen C-Code auf einen Atmega8 L-Chip zu übertragen. Die Fuses setze ich mit dem AVR-Studio 4 und den C-Code übertrage ich mit einer Evaluation-Version von CodeVision. Als Programmierboard verwende ich das STK500 und Betriebssystem ist Windwos XP. Die zugehörige Lauflicht-Schaltung funktioniert einwandfrei. Bei der Chip-Programmierung wird auch kein Fehler angezeigt, aber das Lauflicht funktioniert leider nicht. Ich habe von den einzelnen Programmierschritten einmal Screenshots gemacht und den C-Code eingescannt. Für eine Unterstützung wäre ich sehr dankbar. VG Michael
:
Bearbeitet durch User
Häng den Code mal als Textdatei an und formatiere ihn bitte
:
Bearbeitet durch User
Ok hab den Code gerade als Textdatei angehangen.
> Ok hab den Code gerade als Textdatei angehangen.
nicht :)
Alexander S. schrieb: >>> Ok hab den Code gerade als Textdatei angehangen. >> nicht :) > Doch ;) Ouuhhhh ;))
Wieder nicht formatiert. Außerdem sollte die Dateiendung .c oder .cpp sein.
:
Bearbeitet durch User
Wenn ich deinen code richtig verstehe, dann möchtest du über einen vom ADC gelesenen Wert die Timer-Frequenz regeln. Es wäre nett, wenn du in deinem code vorne beschreibst, was er tun soll. Du lässt den Timer im normal mode laufen, aber ich denke, du möchtest in diesem Fall den CTC mode, der den timer counter beim compare match automatisch auf 0 zurücksetzt. Desweiteren liest deine interrupt Routine die Variable modus, die vom main loop modifiziert wird. Damit der compiler die Variable nicht in ein Register optimiert musst du unbedingt 'volatile' voranstellen. Sicherheitshalber machst du das mit i auch. Stilistisch gesehen kann man die pattern arrays auch direkt als einen einzelnen zwei-dimensionalen array implementieren (und mit Nullen am Ende auffüllen). Statt sizeof checkst du dann ob das array Element, auf das i zeigt, ungleich 0 ist. Weiterhin solltest du innerhalb der Interrupt Routine nicht die langsame ADC Operation betreiben. Sowas gehört in die main loop.
:
Bearbeitet durch User
Michael F. schrieb: > Für eine Unterstützung wäre ich sehr dankbar. Nochmal ganz genau den Abshnitt
1 | switch(modus) |
prüfen, Fehler beseitigen und dann probieren. EDIT: Und gerade wegen solcher Fehler wie bei dir, mag ich C nicht.
:
Bearbeitet durch User
ihr versteht da was falsch. Der TO hat doch ausdrücklich geschrieben, dass der Code fertig ist und funktioniert. Da könnt Ihr doch jetzt nicht einfach Fehler finden ;-) !
Bist du sicher, die Leuchtenden Dinger (was auch immer das ist) richtig angeschlossen zu haben?
doedel schrieb: > ihr versteht da was falsch. Der TO hat doch ausdrücklich geschrieben, > dass der Code fertig ist und funktioniert. Da könnt Ihr doch jetzt nicht > einfach Fehler finden ;-) ! Da verstehst du leider was falsch. Der TO schrub : "Bei der Chip-Programmierung wird auch kein Fehler angezeigt, aber das Lauflicht funktioniert leider nicht."
doedel schrieb: > ihr versteht da was falsch. Der TO hat doch ausdrücklich geschrieben, > dass der Code fertig ist und funktioniert. Da könnt Ihr doch jetzt nicht > einfach Fehler finden ;-) ! Er kann schreiben was er will, deswegen muss es noch lange nicht stimmen.
Marc V. schrieb: > Michael F. schrieb: >> Für eine Unterstützung wäre ich sehr dankbar. > > Nochmal ganz genau den Abshnitt >
1 | > switch(modus) |
2 | >
|
> prüfen, Fehler beseitigen und dann probieren. > > EDIT: > Und gerade wegen solcher Fehler wie bei dir, mag ich C nicht. ? Von welchem Fehler sprichst du da ?
Marc V. schrieb: > doedel schrieb: >> ihr versteht da was falsch. Der TO hat doch ausdrücklich geschrieben, >> dass der Code fertig ist und funktioniert. Da könnt Ihr doch jetzt nicht >> einfach Fehler finden ;-) ! > > Er kann schreiben was er will, deswegen muss es noch lange nicht > stimmen. hey Leute ... das war sarkastisch gemeint! Ich werd's in Zukunft aber dazu schreiben!
Hallo Daz, ok sorry, bin neu im dem Forum. Den Code hat mir damals ein Elektrostudent entwickelt, da ich mich mit der C-Programmierung nicht auskenne. Es handelt sich um ein Lauflicht mit 6 LED`s, bei dem man über ein Poti die Geschwindigkeit des Lauflichts regeln kann und über einen Taster die verschiedenen Lauflichtmodis auswählt. Die Schaltung funktionert auch einwandfrei mit dem C-Code, aber ich möchte mir ein weiteres Lauflicht entwickeln, da mich das Thema sehr interessiert. Leider steht mir der Bekannte nicht mehr zur Verfügung. Deshalb hoffe ich auf Unterstützung im Forum und bitte um Verständnis, wenn ich noch nicht so fit in dem Thema bin. Aber man lernt ja nie aus :-).
Hmpf. C lernen, Atmel Datenblatt lesen, elektrische Schaltung verstehen lernen, ... Meinst du nicht, du zäumst das Pferd von hinten auf, wenn du erstmal im Forum deine Fragen stellst bevor du dich mit der Thematik befasst hast ?
:
Bearbeitet durch User
doedel schrieb: > hey Leute ... das war sarkastisch gemeint! Ich werd's in Zukunft aber > dazu schreiben! Mußt Du. Selbst in der Rubrik "HF, Funk und Felder" fehlt die Antenne für Sarkasmus. MfG Paul
Ok dann danke für die Tipps. Werde es nochmal in Ruhe selber versuchen mit dem Chip programmieren. Hat ja damals auch schon mal funktioniert.
Hi Michael Wenn das Programm schon mal auf einem anderen Board funktioniert hat, funktioniert das ja also grundsätzlich. Also: Was hast du in deiner Schaltung anderst gemacht? Anderer µC, andere Pinbelegung, andere Taktquelle.. usw Gruss
Hi, die neue Schaltung habe ich auf einer Platine zusammengelötet und mit dem funktionierenden Atmega8-Chip getestet. Dann wollte ich mir einen weiteren ATMega-Chip dafür programmieren und daran scheitere ich leider. Habe dazu auch erfolgreich folgendes Turtorial durchgearbeitet, um auszuschließen, dass mein STK 500-Board eventuell defekt ist: http://www.electronicsplanet.ch/mikrocontroller/avr-tutorial-c/avr-tutorial-c.htm. In der Beschreibung wird halt der Chip komplett mit dem AVR-Studio programmiert und ich hatte gehofft, dass ich meinen vorhandenen C-Code eventuell auch damit übertragen kann. Aber so einfach ist es halt nicht und jetzt suche ich vergeblich nach dem Anwendungsfehler. Gruss Michael
Wer im Jahr 2016 immer noch Windows XP nutzt, dem ist ohnehin nicht zu helfen! Ich hoffe nur, daß der Rechner nicht mit dem Internet verbunden ist, denn dann wird es fahrlässig. Einmal infiziert wird so eine Kiste selbst zum aktiven Schadsoftware-Verteiler...
Lieber einen schlauen Spruch von sich geben, anstatt eines brauchbaren Tipps. Dafür habe mich hier nicht angemeldet. Ich nutze fürs Internet Windows 7 und zum testen den XP-Mode von Win7, da ich nur ein STK500-Board besitze und das optimal mit dem AVR-Studio 4 läuft + meiner alten CodeVision-Version und Windows XP. Reicht also vollkommen aus und Internet braucht man dazu auch nicht. Außerdem noch ein paar weitere Pluspunkte aus dem erwähnten Turtorial: -Version 6 ist für das STK-600 Board optimiert, welches viel teurer ist, als das STK-500. In Internetforen findet man viele Berichte über Kompatiblitätsprobleme zwischen Version 6 und dem STK-500. Ärger scheint vorprogrammiert zu sein. Version 4 bringt alles mit sich, was man für die Programmierung eines ATmeag8 benötigt. Version 4 hat unzählige Buttons und Funktionen, die für die Programmierung eines ATmega8 nicht benötigt werden und die Programmoberfläche unübersichtlich machen. Version 4 kommt in einem schlanken 100 MB Download daher, während Version 6 800 MB gross ist. Von den 1600 Beispielprojekten sind nur ein kleiner Teil für die 8-Bit AVR Controller geschrieben. Version 4 ist in der ATmega Gemeinde des Internets weitaus verbreiteter und beliebter als Version 6. Man wird bei Problemen viel schneller online Hilfe finden.
Du hast also einen funktionierenden Atmega8 vorliegen und eine funktionierende Schaltung. Also sollte es doch die einfachste Lösung sein, das Programm von dem funktionierenden Chip in den anderen zu kopieren. Dazu brauchst du gar keine Programmierumgebung, und die Frage, oder Quelltext in ordnung ist, erübrigt sich ebenfalls. Lies einfach den intakten Chip aus und kopiere das Binary File dann in den anderen. Anschließen musst du noch die beiden FUSE Bytes auslesen und in den zweiten Chip übertragen. Mehr ist gar nicht nötig.
Apropos AVR Studio 4: Nachdem ich Atmel dargelegt habe, warum ich in meinen Büchern und Tutorials immer noch dieses alte Programm empfehle, bekam ich umgehend die besondere Erlaubnis, es auf meiner Homepage zum Download bereit zu stellen. Offensichtlich hat sogar Atmel Verständnis dafür, bei dem "altem Kram" zu bleiben. Wer weiß, vielleicht arbeiten die sogar selbst noch damit. Dass man alte Rechner bzw. alte Software verwendet, ist in der Elektronik Entwicklung unfreiwillige Tradition. Das war sogar schon damals zu DOS Zeiten so.
Hi super danke für den Tipp. Werde ich ausprobieren. Ja auf XP lief soweit alles an älterer Software. Windows 7 ist da schon wählerischer und bei Windows 10 wird es bestimmt nicht besser werden. Aber auf kurz oder lang kommt man eh nicht drum herum, upzugraden. Dafür sorgt Microsoft schon ;-). PS: Wo finde ich denn eine Liste Deiner Bücher und Turtorials?
Michael F. schrieb: > Windows 7 ist da schon wählerischer > und bei Windows 10 wird es bestimmt nicht besser werden. AVR-Studio Version 4.18 läuft hier mit Windows 7 zuverlässig. MfG Paul
Ok, danke für den Tipp. Ich bin mit dem XP-Modus als Testsystem ganz zufrieden. Habe dort alle möglichen Programme installiert, die teilweise wirklich nur noch auf XP laufen. Leider gibt es den XP-Modus in der Form nicht mehr für Windows 10, außer über den VMWare-Player oder VirtualBox. VG Michael
Als ich auf Windows 10 wechselte, lief AVR Studio 4.19 zunächst nicht. Aber ein paar Monate hatte ich es nochmal versucht, und dan klappte es ohne großartige Tricks. Microsoft hat offensichtlich diesbezüglich was verbessert. Ob die alten USB Treiber gehen, weiß ich allerdings nicht.
Ich tue mich noch etwas schwer mit dem Wechsel auf Windows 10, da bei meiner Freundin der Laptop nach dem Upgrade von Windows 8 regelmäßig abstürzt. Der Enduser ist halt meistens der Betatester, aber dafür ist das Upgrade ja diesmal gratis ;-).
So habe es jetzt endlich geschafft, den Chip mit dem AVR Studio 4 zu programmieren. Vielen Dank nochmal an alle.
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.