Das geschilderte spricht mehr für einen Hardware Fehler. Also so etwas wie eine kalte Lötstelle.
Ein einfacher Test wäre noch beim Programmer mal ein Verify auszuführen, um einen ggf. unzuverlässigen Programmer auszuschließen.
Hallo alle zusammen.
Ich bin gerade beim Einstieg in die Atmel-Programmierung. Aufgrund mangelnder Programmierkentnisse habe ich mich vorerst für Bascom als Programmiersprache entschieden.
Ich habe ein eigenes Controllerboard entworfen (Eagle) und aufgebaut. Die ersten Tests verliefen auch sehr gut.
LEDs laufen, Taster einlesen läuft, Analogeingang läuft, UART läuft, Servo ansteuern läuft, PWM-Signal einlesen läuft... ...besser lief. Seit Dienstag bekomme ich keinen Code mehr zum Laufen. Wie gesagt alles lief. Ich habe einen Code mit dem einlesen 2er PWM-Signale gleichzeitig versucht und dieser funktionierte nicht. Einzig eine LED, die ich als Betriebsanzeige per Port anschalte blinkte mit "hoher" Frequenz (5-10Hz)
...Nun gut...
Aber seit diesem Moment, so blöd das klingt, ist kein einziger meiner codes mehr funktioniert. ich habe alles ausprobiert... Frequenz kommt normalerweise vom quarz, aber auch die internen oszillatoren habe ich probiert. Codes die vorher liefen wirklich unverändert wieder aufgespielt und den gleichen fehler bekommen. ich habe den comtroler gegen einen neuen getauscht. Wie gesagt alles was logisch scheint.
meinen beobachtungen nach kommt er nie mehr als 3-4 Zeilen in den Code rein, bricht dann ab und startet neu.
ich bin echt verzweifelt weil ich meiner meinung nach alle möglichkeiten ausgeräumt hab...
hatte jemand ein vergleichbares problem schonmal?
Hier nochmal ein Programm wie es nicht funktionieren will:
mfg der jörgCode:$regfile = "m8def.dat" $crystal = 1000000 Config Portc.4 = Output Portc.4 = 1 Do Portc.4 = 0 Waitms 500 Portc.4 = 1 Waitms 500 Loop End 'end program
Das geschilderte spricht mehr für einen Hardware Fehler. Also so etwas wie eine kalte Lötstelle.
Ein einfacher Test wäre noch beim Programmer mal ein Verify auszuführen, um einen ggf. unzuverlässigen Programmer auszuschließen.
Verify mache ich immer mit
das hatte ich auch in verdacht... der fehler tritt aber auf 2 unterschiedlichen boards (gesamtes layout verändert) identisch auf.
die spannung ist im übrigen auch stabil. getesten mit 1A5V netzteil und lipo akku
wegen der Hitze? Irgendwas wirst du doch gemacht haben?Seit Dienstag bekomme ich keinen Code mehr zum Laufen.
In deinem Programm fehlen die Angaben der Stackwerte.
Gruß, Michael
Hast du bestehende, bewährte HEX-Files aufgespielt oder die Sourcen neu compiliert?
Evtl. den Rechner neu installiert mit neuer Version der IDE bzw. Bascom oder Programmiersoftware? Versehentlich Defaulteinstellungen bei z.B. Fuses wiederhergestellt? Ungewollt eine andere m8def.dat beim Build referenziert und damit Anpassungen verloren?
wie gesagt: ich bin mir keiner schuld bewusst. ich hab eigentlich nix verändert
Stack hat ich bisher noch nie eingestellt... was tut es? bzw. welchen wert sollte ich dafür einstellen.
der code wird vor dem aufspielen immer neu kompiliert. ich weis nichmal wo Bascom die hexfiles ablegt
aber der tipp mit dem software schien gut (verdacht im titel geäußert). habe nachgeschaut und gesehen, dass Eagle am dienstag ein update gefordert hat. habe daraufhin die Bascom demo neu installiert. leider stellt sich keine veränderung ein.
An den Watchdog hast du gedacht ?
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
watchdog... inzwischen ja.*
das war tatsächlich der fehler. Danke für alle hilfe.
beim fuses setzen habe ich bisher immer vorher "fuse lesen" gamacht und da hat er den watchdog ausgeschaltet. per default hat er den drin.*
bisher halt immer drauf geachtet und dann mal plötzlich nicht mehr.
jetz funktioniert alles wieder.
nochmals vielen dank
hmmm..., ich weiss nicht, was du da hingebastelt hast.
der code unten funktioniert bei mir einwandfrei.
du hast die fuses versaut gehabt durch deine spielerei, das war dein fehler.
EndCode:$regfile = "m8def.dat" $crystal = 1000000 Config Portc.4 = Output Portc.4 = 1 Do Portc.4 = 0 Waitms 500 Portc.4 = 1 Waitms 500 Loop
Lesezeichen