Unterkapitel zur HTML-Seitenverkleinerung


;; (C) David Vajda
;; 2025-03-10
;; Blink LED

.include "m8def.inc"

ldi r16, HIGH (RAMEND)
out SPH, r16
ldi r16, LOW (RAMEND)
out SPL, r16

ldi r16, 0xff
out DDRB, r16

ldi r16, 0x01
loop1:
out PORTB, r16
rcall sleep
lsl r16
cpi r16, 0b10000000
brne stepover
ldi r16, 0x01
stepover:
rjmp loop1

sleep:
push r16
push r17
ldi r16, 0xff
sleep_loop1:
ldi r17, 0xff
sleep_loop2:
dec r17
brne sleep_loop2
dec r16
brne sleep_loop1
pop r17
pop r16
ret

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Genau ein Problem mit dem links schieben und dem Recht schieben, nehme ich mit dem nicht aber ich hab mit dem rotieren immer das Problem es gibt er schieben nach links und rechts die heißen übrigens anders als bei dem MIPS 32, da heißen die Links und rechts schieben, heißen sll slr und hier heißen die LSL und LSR also logical Shift left und das Problem ist bei dem rotieren hier. Ich weiß bis heute weder bei dem MIPS noch bei dem atmega8 muss ich gestehen, was ein arithmetischer Schrift ist. Ich weiß nicht, was ein arithmetischer Schrift ist, falls mir jemand erklären kann. Irgendwie wird das das erste Bit wieder irgendwie nach rechts nach links gesetzt oder so also ich weiß eindeutig was logisches schieben ist aber was in arithmetische schieben ist weiß ich nicht gut okay jetzt finde ich auch noch raus. Ich hab's ausprobiert das ist das Problem des arithmetische schieben. Das Ergebnis war das selbe wie beim logischen schieben. es gibt übrigens nur ein arithmetisches, entweder rechts oder links schieben. Ich weiß es nicht jedenfalls mit dem rotieren hab ich das Problem das hab ich bei dem atmega8 ausprobiert und das Ergebnis war, dass es rotieren nicht funktioniert. Hat das Bit ist nicht wieder am Anfang angekommen

Gut jetzt in die andere Richtung und dann mache ich mal die externe Unterbrechung rein

Wenn das oberste Bit sieben Gesetzes ist es übrigens 128 in Dezimal Schreibweise. Jetzt weiß ich aber nicht was es in Hexadezimal Schreibweise ist. Weil eigentlich schreiben wir nicht 0B1000000 sondern eigentlich schreiben der Hexadezimal Schreibweise und auch eigentlich keine Dezimale. Ich weiß noch nicht was 128 in Hexadezimal ist. Das ist der nächste Übung Schritt. Ich kann die zweier Potenzen bis 14 100-prozentig auswendig. Was ich noch nicht weiß ist leider diese zweier Potenzen in Hexadezimal Schreibweise. Also das muss ich auch noch machen.

128 ist hex 80

Wenn ich eine geraucht hab, änder ich nicht nur das zählen, sondern ich mach folgendes mit dem Timer Interrupt kenne ich mich noch nicht so gut aus muss ich ehrlich gesagt sagen beziehungsweise ich hab dich schon richtig benutzt und ich weiß ungefähr wie es geht trotzdem aber ich mach folgendes ich mach deswegen ist Port B die richtige Wahl, weil ein Port d ist das sind halt die Eingaben also wo Eingabe ist und dann mache ich das mal so dass ich das zählen von Außensteuer. Ich hab jetzt keine Taste aber das kann ich mit dem Kabel machen. Das ist bei dem ein sozusagen bei dem ein PIN nach oben zählt und bei dem andern nach oben durch Auslösung. Von halt nur Unterbrechung von außen.

Wenn ich eine geraucht hab, änder ich nicht nur das zählen, sondern ich mach folgendes mit dem Timer Interrupt kenne ich mich noch nicht so gut aus muss ich ehrlich gesagt sagen beziehungsweise ich hab dich schon richtig benutzt und ich weiß ungefähr wie es geht trotzdem aber ich mach folgendes ich mach deswegen ist Port B die richtige Wahl, weil ein Port d ist das sind halt die Eingaben also wo Eingabe ist und dann mache ich das mal so dass ich das zählen von Außensteuer. Ich hab jetzt keine Taste aber das kann ich mit dem Kabel machen. Das ist bei dem ein sozusagen bei dem ein PIN nach oben zählt und bei dem andern nach oben durch Auslösung. Von halt nur Unterbrechung von außen.

Das alte Problem wie bei dem realen stk500 beim Port B und ich hab immer vermutet, das liegt an dem Bord selber sind die zwei oberen LEDs die kann man nicht ansteuern an Bord. Ich dachte immer das liegt daran, weil bei dem stk500 werden die nicht weitergeleitet. Tatsächlich sind immer nur die unteren sechs Bit bei Port B. Bei dem atmega8 hier auch die oberen beiden zwei LEDs bleiben immer aus

Okay fertig die komplette Schaltung ist fertig mit allen LEDs. Die Beiträge sind jetzt ein bisschen verrutscht, weil sich manchmal was in einander rein machen lässt und nichts. Das bringt gleich in Ordnung. Ich zeige kurz das Fähnchen die komplette Schaltung ist fertig und dann baue ich das Programm um das Programm Programmiergerät muss ich diesmal nicht wieder raus machen„. Es geht mit samt LED und dann kann ich mal paar andere Blink Sachen nach links und rechts und vielleicht finden wir irgendeine mathematische Kombination Fibonacci Zahlen oder so die sich da ausgeben lassen in Maßen jedenfalls weil es geht nur sagen wir mal in der Hinsicht ob das bei Fibonacci Zahlen Sinn macht gucken wir mal was rauskommt

Falsches Programm übertragen, wenn sie genau hin kucken bei dem bash AVR dude ist es, das alte. Ich habe es korrigiert, Es blinkt schon schön.


;; (C) David Vajda
;; 2025-03-10
;; Blink LED

.include "m8def.inc"

ldi r16, HIGH (RAMEND)
out SPH, r16
ldi r16, LOW (RAMEND)
out SPL, r16

ldi r16, 0xff
out DDRB, r16

ldi r16, 0xff
loop1:
out PORTB, r16
rcall sleep
dec r16
rjmp loop1

sleep:
push r16
push r17
ldi r16, 0xff
sleep_loop1:
ldi r17, 0xff
sleep_loop2:
dec r17
brne sleep_loop2
dec r16
brne sleep_loop1
pop r17
pop r16
ret
Ich hab's jetzt erst mal soweit ich muss kurz eine rauchen ist ein bisschen umständlicher als auf dem Original stk500 weil da sind die LEDs schon alle drauf und hier muss man ein bisschen gucken, wenn man fünf an einer Seite hat. Ich geh kurz eine rauchen gleich fertig dauert trotzdem nicht lang.

So geht es

Es tut und ich hatte einen kleinen Fehler gemacht für genau in die Schaltung reinschaut auf das Foto. Ich musste alle Kabel noch mal machen, weil diese Controller versetzen. Das macht jedes Mal die Kontakte kaputt. Wenn man genau hinschaut wo die Einkerkerung ist. Der hat verkehrt rum drin gesessen jetzt sitzt er richtig und das kann ich gleich für die nächste Übung nehmen dass er das nach oben zählt. Tut es erst in den Beitrag von vorher dann kann das nach oben zählen.


;; (C) David Vajda
;; 2025-03-10
;; PORT B, LED OUT

.include "m8def.inc"

ldi r16, 0xff
out DDRB, r16

ldi r16, 0b11001010
out PORTB, r16

end: rjmp end

;; jetzt muss ich kurz erst die LEDs auf dem Bord einsetzen
;; Ich muss das Weiteren das neue Programmiergerät wieder anschließen. Hier muss man im Gegensatz zum alten die Pins alle einzeln entsprechend rein machen. Es dauert kurz 4 Minuten
;; so programmierung hat funktioniert, jetzt muss ich das zu den led einsetzen

;; Ich hab's jetzt erst mal soweit ich muss kurz eine rauchen ist ein bisschen umständlicher als auf dem Original stk500 weil da sind die LEDs schon alle drauf und hier muss man ein bisschen gucken, wenn man fünf an einer Seite hat. Ich geh kurz eine rauchen gleich fertig dauert trotzdem nicht lang.

;; So geht es

;; Es tut und ich hatte einen kleinen Fehler gemacht für genau in die Schaltung reinschaut auf das Foto. Ich musste alle Kabel noch mal machen, weil diese Controller versetzen. Das macht jedes Mal die Kontakte kaputt. Wenn man genau hinschaut wo die Einkerkerung  ist. Der hat verkehrt rum drin gesessen jetzt sitzt er richtig und das kann ich gleich für die nächste Übung nehmen dass er das nach oben zählt. Tut es erst in den Beitrag von vorher dann kann das nach oben zählen.
Ich habe in der alten Wohnung noch ein lcd hd44780, was ich nicht weggetan habe ein bisschen marode ist ohne steckkontakte, egal, damit kann ich morgen mit lcd

Und ich kann ein paar atmega8 Assembler Quelltexte machen so oder so, wirkt sich auf led aus

Außerdem bestelle ich zwei kleine max232 nicht sehr teuer dann kann ich den atmega8 mit dem pc kommunizieren lassen, erst noch schlafen dann das

Warten Sie ich schreibe ein Übungsprogramm in, Assembler für den atmega8 zum hoch zählen der LEDs Das mache ich mit verschiedenen Variation erst mal einfach nur hoch zählen binär dann vielleicht mit schieben der Bit und dann vielleicht irgendwelche mathematischen arithmetischen Kombination, was mir jetzt noch aufgefallen ist. Ich mach jetzt wieder die Übungsprogramm Programme für den atmega8

Was mir noch aufgefallen ist bei der DNF der letzten Schaltung, habe ich immer den Schaltplan vergessen. Gezeichnet mit caneda. Für alle, die von außen sehen wie gesagt, es geht hier nicht um den atmega8 sondern um die DNF mit und oder und nicht in TTL und da hab ich den Schaltplan vergessen das muss ich noch nachholen und ich habe gesagt, ich hol das LCD, was ich noch mache

Ich habe ihr gesagt, ich hol den Kauf mir noch die zwei kleinen max232 für die RS 232 Kommunikation das ist es eine die sind ja nicht besonders teuer was ich auch noch kaufen kann. Ich hatte ja neben dem LCD noch ne sieben Segmentanzeige das muss man dann so machen, dass man einerseits halt den dick, also den Kodierer nimmt man braucht den Kodierer, aber das ist nicht alles, sondern man brauchten inverter oder beziehungsweise zwei weil einer reicht nicht. Die LEDs richtig rum anzuzeigen weil die sind verkehrt rum von der Anzeige. Da hatte ich schon zwei Schaltungen gelötet. Das hatte ich dann auch nach oben gezählt. Das hab ich dann einfach ersetzt. Wenn man die Schaltung so sag ich mal pragmatisch zusammengebaut hat, dann braucht man sich da keine Gedanken drum zu machen ob man die Schaltung am Ende richtig hat sondern dann hat man seinen Zähler und setzt entsprechend die sieben Segmentanzeige ein und ja das hat er dann schön gezählt und der Unterschied ist dass ich das ja jetzt immer nur noch zusammen stecke ich nicht und das ist auch ne gute Übung für die sieben Segmentanzeige, die ein bisschen wie soll ich sagen, umständlicher jedes Mal zu machen wegen der ganzen inverter Aber mein Ziel ist ja möglichst viel zu üben und es dann so schnell und automatisch zu machen. Vielleicht auch, in dem man jedes sieben Segment einzeln kennt und jedes jedes Bild von dem Kodierer gerade die Bits von dem Kodierer, die sind nicht so einfach auswendig zu wissen wenn man's nicht immer macht und wenn man dann die Übung jedes Mal macht die sieben Segmentanzeige zusammenzusetzen, dann sitzt es vielleicht noch besser okay das mache ich dann demnächst ist auch nicht besonders teuer. Von der Sache her sind ein paar Euro jetzt erst mal

Paar Übungsprogramm für den atmega8 jetzt erst mal das einfachste und dann der Schaltplan für die letzten DNF

Übungsprogramm für den atmega8 nach oben zählen

Übungsprogramm für den atmega8 nach oben zählen

Image Screenshot_20250310_060441

Image Screenshot_20250310_060500

Image Screenshot_20250310_060507

Image Screenshot_20250310_064626

Image Screenshot_20250310_064909

Image Screenshot_20250310_065756

Image Screenshot_20250310_085145

Image Screenshot_20250310_085242

Image Screenshot_20250310_085418

Image Screenshot_20250310_085441

Image Screenshot_20250310_085449

Image Screenshot_20250310_091257

Image IMG_7926.HEIC

Image IMG_7927.HEIC

Image IMG_7928.HEIC

Image IMG_7929.HEIC

Image IMG_7930.HEIC

Image IMG_7933.HEIC

Image IMG_7934.HEIC