Gast
#1114469
Hallo zusammen! Bin nicht so der Profi. Ich benutze seit in paar Monaten das Pollin Eval Borad 2.01 für den Einstig in die uc-Seuche ;-) Nach den üblichen Anfängerproblemen bin ich gut vorangekommen und habe schon ein paar kleine Regelungen für Gewächshaus, Kellerlüftung usw. damit konzipiert und erfolgreich ausprobiert. Ich habe nen Mega16, programmiere in Bascom, benutze Ponyprog mit einen 1:1 Kabel direkt an der seriellen Schnittstelle meines Laptops. Seit einger Zeit spinnt allerdings irgendetwas am Board herum. Irgendwie scheint der uC aus dem Takt zu kommen. Mehrere Abende habe ich bei der Fehlersuche verbracht ... nun habe ich mir ein seeeeeehr einfaches Programm geschrieben um dem Problem auf den Grund zu gehen. An Port D5-7 ist jeweils ein Taster angebracht. '################################################ $regfile = "m16def.dat" $crystal = 16000000 $hwstack = 32 $swstack = 10 $framesize = 40 Dim T1 As Byte Dim T2 As Byte Dim T3 As Byte Ddrd = &B11100000 Portd = &B00000000 '---INIT---------------------------- T1 = 0 T2 = 0 T3 = 0 '---MAIN--------------------------- Do Debounce Pind.2 , 1 , T1 , Sub Debounce Pind.3 , 1 , T2 , Sub Debounce Pind.4 , 1 , T3 , Sub Loop Print "ende gelaende" End '---SUBS---------------------- T1: Incr T1 Print "T1:" ; T1 ; " T2:" ; T2 ; " T3:" ; T3 Return T2: Incr T2 Print "T1:" ; T1 ; " T2:" ; T2 ; " T3:" ; T3 Return T3: Incr T3 Print "T1:" ; T1 ; " T2:" ; T2 ; " T3:" ; T3 Return '################################################ Zu erwarten wäre, das je nach Taster T1, T2 bzw T3 die ensprechende Variabel hochgezählt wird. Das Ergebnis sieht allerdings anders aus. Hier habe ich ausschließlich T3 betätigt. Bei den anderen beiden Tasten ist das Ergebnis ähnlich... T1:0 T2:0 T3:1 T1:0 T2:0 T3:2 T1:0 T2:0 T3:3 T1:0 T2:0 T3:4 T1:152 T2:0 T3:5 T1:32 T2:152 T3:6 T1:32 T2:152 T3:7 T1:32 T2:152 T3:8 T1:32 T2:152 T3:9 T1:32 T2:152 T3:233 T1:32 T2:152 T3:234 T1:0 T2:0 T3:1 T1:0 T2:0 T3:2 Irgendwie kommt die ganze Fuhre in diesem Beispiel ab Zeile 5 aus dem Takt. Manchmal funktioniert es auch 20x hintereinander um dan auszukreisen ... total chaotisch. Soweit soschlecht. Ich bin wie gesagt noch nicht lange im Geschäft und hardwareseitig weniger erfahren. Daher würde ich mich freuen, wenn ihr mir ein paar Anregungen für die Fehlersuche geben könntet. - Habe ich einen typischen Anfängerfehler gemacht und ich sehe den Wald vor Bäumen nicht? - Wo würdet ihr den Fehler am ehesten vermuten? - Kann man den Fehler durch Tests irgenndwie eingrenzen? Ich bin ratlos :-| Vielen Dank schon mal vorab, kurtzz