Blinker blinkt zu oft

Nachdem du die LED toggelst kommt der Pausenblock. Heute Mittag hatte ich das auch mal ausgerechnet, das sind etwa 27 Maschinenzyklen * 256 *256, also etwa 17.700Mz. Das gibt eine Pause von 900ms zwischen toggeln.
 
Nachdem du die LED toggelst kommt der Pausenblock. Heute Mittag hatte ich das auch mal ausgerechnet, das sind etwa 27 Maschinenzyklen * 256 *256, also etwa 17.700Mz. Das gibt eine Pause von 900ms zwischen toggeln.
27*256*256 = 1769472Mz (d.h. 90ms --> 180ms pro Periode)
Bei 10 Durchläufen ca. 17700000Mz
17.700.000 / 19660800Hz = 900ms

Wolfgang
 
Ah OK. Ich hatte da 17700000 fuer die Pause abgelesen, eine null zu viel, sorry.
 
Du ergänzt den Code aus #1 um 'ne 2te LED, die Du vor Eintritt in die L0-Schleife an, und nach Austritt ausschaltest, und direkt dahinter 'ne leere Endlosschleife. Wenn das paßt, Stück für Stück den Rest rein, bis der Fehler auftritt...

Noch'n Hinweis: verwende wenn möglich die Bitname oder selbst definierte Konstanten. Für das Toggeln kannst Du auch direkt auf das Pin-Register schreiben (SBI).
 
Du ergänzt den Code aus #1 um 'ne 2te LED, die Du vor Eintritt in die L0-Schleife an, und nach Austritt ausschaltest, und direkt dahinter 'ne leere Endlosschleife. Wenn das paßt, Stück für Stück den Rest rein, bis der Fehler auftritt...

Noch'n Hinweis: verwende wenn möglich die Bitname oder selbst definierte Konstanten. Für das Toggeln kannst Du auch direkt auf das Pin-Register schreiben (SBI).
Ich werde heute noch ein paar Tests machen. Danke für die Ideen!

Aber zunächst noch eine Beobachtung:

Heute Morgen (das STK500 war also lange ausgeschaltet) schalte ich das Ding ein und es blinkt 5 mal! Das habe ich mehrmals wiederholen können!
Danach war es 10 Minuten aus.
Wieder eingeschaltet und es blinkt jetzt etwa 10s lang. Die LED bleibt hinterher an, vorher war sie immer aus.

Dann habe ich

Code:
Lop:	rjmp	Lop

hinter meinen Blinker gesetzt, um diesen zu isolieren. Danach ging die LED gar nicht mehr an. 'Lop' klingt blöd, weil ich 'Loop' schon vergeben habe. Aus einer Laune heraus habe ich 'Lop' noch einmal ersetzt

Code:
Main:	rjmp	Main

Jetzt habe ich wieder das alte Verhalten. 20s blinken, LED hinterher aus!

So langsam fange ich an, mich zu fürchten!

Wolfgang
 
Ich bin einen Schritt weiter. Das ganze scheint eher ein Hardware-Problem zu sein.

Der aktuelle Code sieht so aus:
Code:
	ldi	temp1, 0x01
	out	DDRB,	temp1
	cbi	PORTB,	0

	ldi	temp1,	0x80
	out	DDRA,	temp1
	out	PORTA,	temp1



	ldi	tempL, 10
L0:	sbi	PINA, PINA7

	ldi	temp1, 0
L1:	ldi	temp2, 0
L2:	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	dec	temp2
	brne	L2
	dec	temp1
	brne	L1

	dec	tempL
	brne	L0

Main:	rjmp	Main

Diesen Code habe ich einmal übersetzt und dann mehrfach geflasht:
Flash-Versuch1: LED-B0 leuchtet, Blinker macht nichts
Flash-Versuch2: LED-B0 leuchtet, Blinker macht nichts
Flash-Versuch3: LED-B0 und LED-B7 leuchtet, Blinker blinkt 5 mal (warum leuchtet LED-B7)

Alle Flashs waren fehlerfrei!

Danach habe ich nur noch mehrfach den Reset-Taster gedrückt:
In einem von 10 Fällen leuchtet LED-B0 und LED-B7 und der Blinker blinkt 5 mal
In 9 von den 10 Fällen leuchtet LED-B0 und der Blinker ist aus

LED-B0 und LED-B7 sind die STK500 internen LEDs. Der Blinker ist nach wie vor ein externer.

Zum Schluß habe ich noch

Code:
	sbi	PORTB,	0

nach den Schleifen, vor der Main-Loop eingefügt. Jetzt geht LED-B0 an, der Blinker blinkt 5 mal und LED-B0 geht wieder aus. Das funktioniert auch bei mehrfachen Versuchen. Allerdings meldet sich ab und an auch noch LED-B7 und bleibt bis zum nächsten Reset an. :vollkommenauf:

Irgend was ist doch hier oberfaul!

Wolfgang

Edit: Ihr erinnert Euch, daß ich von Problemen mit einer externen LED an PORTB7 in 'LED auf Halbmast' berichtet habe. Diese hatte ich so angeschlossen, wie meinen Blinker hier an PORTA7, also LED an PORTA7 (5V) und GND.

Jetzt benutze ich die STK500 interne LED an PORTB0 und die interne LED an PORTB7 leuchtet manchmal mit und diese wird ja über PORTB0 (low) geschaltet. Ist also ganz anders. Das ziehen des SPI-Steckers macht sie auch nicht aus.

Kann es sein, daß mein Board hin ist?
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)