PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Seltsamer Bug. Bascom als Hauptverdächtiger!!! Ähnliche erfahrungen??



agressor
30.06.2011, 19:30
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:

$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

mfg der jörg

Besserwessi
30.06.2011, 19:43
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.

agressor
30.06.2011, 19:59
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

Michael
01.07.2011, 01:49
Seit Dienstag bekomme ich keinen Code mehr zum Laufen.
wegen der Hitze? Irgendwas wirst du doch gemacht haben?
In deinem Programm fehlen die Angaben der Stackwerte.

Gruß, Michael

RoboHolIC
01.07.2011, 02:29
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?

agressor
01.07.2011, 06:11
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.

PicNick
01.07.2011, 08:29
An den Watchdog hast du gedacht ?

agressor
01.07.2011, 14:19
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

funkheld
05.07.2011, 12:34
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.






$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