des weiteren

;; (c) david vajda
;; 06/10/2026
;; m8 atmega8 - lcd hd44780 - display - excersize

.include "m8def.inc"

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

ldi r16, 0xff
out DDRB, r16

;; 1.) schritt initialisieren
;; 2.) commandos senden
;; 3.) zeichen senden
;; 4.) unterschieden ueber RS - am LCD HD44780
;;            wo egal, richtig angeloetet ...
;;            zweitens: dieses geraet <-> jenes geraet
;;            am controller: ich glaube: RS wurde in dem falle, im
;;            Byte z.B. manipuliert in r16 uebertragen, PORTB
;;            in Bit 5 gesetzt
;; 5.) oder wie war das?
;; 6.) nein, wir haben noch eine routine - danach liste
;; 7.) uebernehmen - uebernehmen, heisst, wie beim revolver,
;; 8.) registriermaschine ... einrasten uebernehmen
;; 9.) das ist glaube ich - ueber EN - E
;; 10.) geht:
;;          bit 5 Setzen, im PORTB
;;          nop
;;          nop
;;          nop
;; 11.) dann lauter warteschleifen
;; 12.) hat sich herausgestellt, warteschleifen von einer laenge reicht ...
;; 13.) initialisieren setzt sich zusammen, aus:
;; 14.) irgendwas senden, irgendein start cmd - ohne dass cmd aktiviert wurden
;; 15.) irgendwie noch mal noch mal noch mal, mit warten
;; 16.) einstellung vornehmen - Blinken, Curser ...
;;
;; d - ist display einschalten ..
;; 17.) ok: also: init heisst:
;; 18.) kurz irgendwas senden, anfangs cmd - aber fuer alles - es gibt in der
;; initialisierungsphase, keinen cmd mode und keinen data mode
;; es geht alles, also ist auf jeden fall: init cmd -
;; gut mehrfach senden - als - "stochastisch" bestaetigtigtes Signal
;; dann 4 Bit Modus einstellen - dann anfangen

;; wichtig - 4 bit - cmd und data byte zerlegen in jeweils 4 bit
;; in der init senden, 4 Bit mode...

;; Routinen
;; 1.) init
;; 2.) cmd send/transmit
;; 3.) data send/transmit
;; 4.) inzwischen: "einrasten" bit 5, en: nach allem ein mal senden
;;      bit 5 set
;;      nop
;;      nop
;;      npo
;;      bit 5 clear
;; 5.) 11 <- ??? oder 1 <-  ??? glaube 0b1bcd000000 zum init
;; teil von init - dann 4 bit modus
;; 6.) unterteilung von cmd und data send, erst untere vier bit, dann obere?
;; 7.) little endian big endian
;; 8.) little endian falsch rum - big endian richtig rum - habe ich mit computersysteme
;; 1/2 gelernt. gut, erst in assembler das was ich kann, z.B. routinen

rcall hd44780init
;; rcall lcd_clear

ldi r16, 'h'
rcall hd44780senddata
ldi r16, 't'
rcall hd44780senddata
ldi r16, 't'
rcall hd44780senddata
ldi r16, 'p'
rcall hd44780senddata
ldi r16, 's'
rcall hd44780senddata
ldi r16, ':'
rcall hd44780senddata
ldi r16, '/'
rcall hd44780senddata
ldi r16, '/'
rcall hd44780senddata
ldi r16, 'v'
rcall hd44780senddata
ldi r16, 'a'
rcall hd44780senddata
ldi r16, 'j'
rcall hd44780senddata
ldi r16, 'd'
rcall hd44780senddata
ldi r16, 'a'
rcall hd44780senddata
ldi r16, '-'
rcall hd44780senddata
ldi r16, 'b'
rcall hd44780senddata
ldi r16, 'r'
rcall hd44780senddata
ldi r16, 'e'
rcall hd44780senddata
ldi r16, 'a'
rcall hd44780senddata
ldi r16, 'd'
rcall hd44780senddata
ldi r16, 'b'
rcall hd44780senddata
ldi r16, 'o'
rcall hd44780senddata
ldi r16, 'a'
rcall hd44780senddata
ldi r16, 'r'
rcall hd44780senddata
ldi r16, 'd'
rcall hd44780senddata
ldi r16, '.'
rcall hd44780senddata
ldi r16, 'd'
rcall hd44780senddata
ldi r16, 'e'
rcall hd44780senddata

end: rjmp end

hd44780takeover:
;; vermutlich sti und cli
sbi PORTB, 5
nop
nop
nop
cbi PORTB, 5
ret

hd44780init:
;; hier so pi mal daumen
;; 1.) ich sende irgendein command - bits - glaube vorne zwei gesetzt
;; 2.) 2 oder 3 mal um mit stochastischer wahrscheinlichkeit zu signialisieren
;; 3.) es geht wirklich los - plus warteschleife, also erste version
ldi r16, 50
hd44780initl1:
rcall hd44780slowdownloop5ms
dec r16
brne hd44780initl1
;; nachgeguckt google: wait loop - warteschleife - computer technology
;; aircraft ... ?? craft: holding pattern...
ldi r16, $3
out PORTB, r16
rcall hd44780takeover
rcall hd44780slowdownloop5ms

;;ldi r16, $3
;;out PORTB, r16
rcall hd44780takeover
rcall hd44780slowdownloop5ms

;;ldi r16, $3
;;out PORTB, r16
rcall hd44780takeover
rcall hd44780slowdownloop5ms

ldi r16, $2
out PORTB, r16
rcall hd44780takeover
rcall hd44780slowdownloop5ms

ldi r16, $20
out PORTB, r16
rcall hd44780takeover
rcall hd44780slowdownloop5ms

           ldi r16, 0b00101000        ; 4Bit / 2 Zeilen / 5x8
           rcall hd44780transmitcmd
           ldi r16, 0b00001100        ; Display ein / Cursor aus / kein Blinken
           rcall hd44780transmitcmd
           ldi r16, 0b00000110        ; Cursor inkrementieren / kein Scrollen
           rcall hd44780transmitcmd
           ret

ret

;; think bit 4 - PORTB gesetzt ist CMD
;; think bit 4 - PORTB geloescht ist DATA
;; moeglich 3 .. 0 ist data - bei 4 bit
;; korrektur nachher ...

hd44780transmitcmd:
;; 4 bit uebertragen, mit maske, erst unteres
;; dann oberes ...
mov r17, r16
swap r17
andi r17, 0b00001111
;;clr r17, 0x10
out PORTB, r17
rcall hd44780takeover

;; lsr r17, 4
;; ok lieber swap nehmen, habe ich mit gerechnet...

;; das heisst, enttaeuschender weise, computersysteme 1/2
;; ging auf die schnelle, andi
;; ldi, heisst immidiate, konstante, direktwert
;; mov r16, r17
;; intel programmierer bekommen das nicht mit
;; mov ax, bx
;; mov ax, [label1]
;; aber computersysteme 1/2 enttaeuschend, peinlich, immer
;; drauf achten...
;; mov Register1, register2
;; ldi, sti, ldd, std - das heisst, i immidiate
;; und add r1, r2 ist wie - oder and
;; mov r1, r2 und and r1, r2

mov r17, r16
andi r17, 0b00001111
;; clr r17, 0x10
out PORTB, r17
rcall hd44780takeover
rcall hd44780slowdownloop50us
ret

hd44780senddata:
mov r17, r16
swap r17
andi r17, 0b00001111
sbr r17, 1<<4
;; oder sbr r17, 0x10
out PORTB, r17
rcall hd44780takeover
mov r17, r16
andi r17, 0b00001111
sbr r17, 1<<4
;; oder sbr r17, 0x10
out PORTB, r17
rcall hd44780takeover
rcall hd44780slowdownloop50us
ret

hd44780slowdownloop5ms:
push r16
push r17
ldi r16, $21
hd44780slowdownloop5msl1:
ldi r17, $C9
hd44780slowdownloop5msl2:
dec r17
brne hd44780slowdownloop5msl2
dec r16
brne hd44780slowdownloop5msl1
pop r17
pop r16
ret

hd44780slowdownloop50us:
push r16
ldi r16, 42
hd44780slowdownloop50usl1:
dec r16
brne hd44780slowdownloop50usl1
pop r16
ret

hd44780clear:
           ldi r16, 0b00000001   ; Display l"oschen
           rcall hd44780transmitcmd
           rcall hd44780slowdownloop5ms
           ret
Ja, man sieht Beleuchtung tut auch hier nicht, aber man sieht es in Zeichen angezeigt. Es ist ein gutes Zeichen. Solange es nicht initialisiert ist, muss etwas erscheinen wäre es verdreht, dann würde nix kommen.

Also ich glaub in dem Fall ist es richtig. Das rote steckt hier am roten GND auf dem sozusagen westlichen Seite Sorten steckt es da drin das passt hier. Man sieht es in dem sozusagen. Dieser untere Draht ist mit dem VSS in der Richtung verbunden.

Auf der linken Seite das alte eins meiner noch übrig geblieben. LCD Leider tut die Hintergrundbeleuchtung nicht auf der anderen Seite des von AZ Delivery Display, was selber eingeläutet ist mit wieder einer Buchse Wie sagt man pfostenboxe man sagt Pfostenstecker Gut, und dann kommt es da rein und dann gucken wir mal was geht es richtig angelötet wir müssen das nur noch verbinden Ein bisschen aufpassen muss ich hier mit den mit dem Rot und dem VCC an der Verbindung, weil ich weiß nicht, man muss ja aufpassen, man kann in dem stk500 und es war eigentlich meine erste Aufgabe in meinem Leben, als das Ding hatte, als ich noch hier lebte, bevor ich den ausgezogen war das war recht früh und da hab ich das gelötet bloß da hab ich nicht drauf geachtet. Es geht zwar in beide Richtungen bloß man muss das rot eventuell verdrehen also mache ich jetzt

jetzt das lcd - hd44780

wichtig ist -

VSS - ist GND das letzte bis auf VPP ist bei mangelnden - GND - immer GND

VCC - normalerweise - Voltage Current Collector
Voltage - die spannung
Current - der Strom

Currency - die waehrung - hat nichts miteinander zu tun

VPP - ist die programmierspannung

andere sind VEE und VDD

VDD - ist entsprechend VCC, wg. weil es noch VEE gibt.

VEE - entspricht der Hintergrundspannung

jetzt das Display erst anstecken. es ist auf einer platine angeloetet. und muss wieder an die pins des Ports, wie vorher.

wenn geschehen, wie vorher programm...

Oder ne Entschuldigung zu den Befehlen falsche Syntax. Ich muss es korrigieren.

BCD heißt es zum Beispiel

D.h. blinken Cursor und was ist die weiß ich nicht das geht dann aber so die Syntax von den Befehl

Und so weiter müssen aber insgesamt acht sein. Da fehlt glaube ich noch eins und was denn wichtig ist. Ich glaub das geht

111bcdxxxxx
Wobei die Xen stehen für null oder eins ich probier das aus

Wo wird es jetzt haben kurze Pause und dann wird es spannender besonders die Zuschauer immer interessant ist des LCD HD 4478 null

Das hat folgende Pins

VDD, VEE, VSS

RS, RW, E

DB7..DB0
Okay, DB null bis DB sieben sind sozusagen unsere Daten. Wir können, anstatt wir wissen ja jedes Zeichen ist im ASCII Code. Sozusagen 8 Bit, aber wir können zwei Pakete zweimal 4 Bit übertragen.

Dass RW sorgt dafür, dass wir wieder schreiben oder warum können wir aus einem Display lesen?

Weil das Display einen Speicher hat. Wir können zum Beispiel neue Zeichen definieren.

Des RS ist für Kommando, oder Für Daten?

Bei den Kommandos ist generell darauf zu achten

a000 0000
aa00 0000
aaa0 0000

Sozusagen der Syntaktischeform E. Steht für enable

Was? Was man übertragen muss, sind zum Beispiel Kommandos, wie

C für Cursor
Blinken B Und vieles weitere, des war ich sehr genau in Auswendiglernen. Ich weiß es auch generell aber das hab ich noch nicht ganz so viel auswendig gelernt mache ich auch heute Nachmittag weiter, aber auch im Computersysteme eins und zwei so wenn wir das haben.

Müssen wir wissen, dass Kommandos generell so übertragen wird. Wir müssen immer eine gewisse Zählweise warten, bis wir das wieder übertragen. Also wir müssen gerade beim initialisieren des Displays und bei den Kommandos immer warten, bis das Kommando angekommen ist zwischen den einzelnen Schritten.

Wir sollten im Programm zwei Routinen schreiben, eine zum Daten übertragen und eine zum Kommando übertragen

Sie müssen das Kommando übertragen, damit es Display initialisiert ist und Sie müssen am Anfang warten, denn das Display braucht eine gewisse Phase, bis es anläuft

Damit beginnen wir gleich im nächsten Schritt. Ich habe das auswendig gelernt. Hier sind allerdings ein paar Sachen verloren gegangen. Das war auch am Ende eines sehr stressigen Zeit. Ich habe das nicht sehr oft auswendig gelernt und weiß es generell von außen. Ich habe die Displays bereits gekauft die waren auch weg bei dem Laden das fällt mir gerade auch wieder

AZ Delivery

Muss ich auch mal wieder einkaufen die haben mich auch drum gebeten und ich geb denen auch recht diese Displays selber die gab es lange auch bei reichelt.de und Konrad. Allerdings habe ich die immer bei dem Ersten gekauft und die gibt es manchmal und manchmal nicht das Problem bei den neuesten. Die haben keine normalen Leisten, damit man sie normal reinstecken kann und es ist eine große Katastrophe, wenn es nämlich so kleine futzel Dinger sind, dann kommt man damit nicht klar so.

Hole ich noch mehr Display Displays kann man nicht, aber nicht jetzt nicht jetzt das brauche ich jetzt nicht. Ich hab schon paar gelötet die muss ich nur noch reinstecken und dann muss das Programm richtig stimmen. Hier kann es sein auf das gibt es übrigens nicht nur auf Mikrocontroller.net, aber da ist es besonders angeboten

Da muss ich allerdings sagen müssten Sie auch einfach in die Gebrauchsanleitung des atmega8 also ins Datenblatt da steht sehr viel Information. Was ist Display also ich weiß es und es gut eingelöst aber da stehen die meisten Infos in diesem Programm muss ich noch mal gucken das muss ich eben noch mal noch sehr genau lernen. Also wie gesagt, er muss noch Genauigkeit gearbeitet werden. Daran arbeite ich noch ebenso mit RS 232

Das hat halt normalerweise noch den Bau und es ist der Vorteil bei diesem Brett da muss man den Baustein nicht unterbringen

Das ist zwar ne schöne Übung, sag ich trotzdem max 232 der muss halt ne Pegelanpassung machen das ist die serielle Schnittstelle und bei der Schnittstelle gilt wir müssen sozusagen +12 V oder 15 ich glaub 12 V und -12 V

So schöne Übung, den immer anzubringen, macht aber keinen Spaß. So jetzt zunächst das muss gemacht werden.

Und dann wie gesagt, du hast das mit den Interrupts weil wir haben zwei Pins also externe d.h. es kommt ein Signal von außen D1 und D2 oder D0 und D1 oder so kann ich einmal Nastorone drücken. Das ist ja auch praktisch drauf und dann geht er in los was aber davor wahrscheinlich gemacht wird jetzt von mir.

Das brauche ich denn für die Interrupts sind die sieben Segmentanzeige. Das mache ich jetzt mit dem im nächsten Schritt ohne BCD Dekoda physisch also 74740 ohne dich, sondern codiert in der Tabelle das mache ich erst dann trotzdem hier müssen wir also wenn die Inter kommen, dann muss auch endlich die 14 und 16 Segmentanzeige her der Unterschied ist da das ja hier in der Schaltung steckt muss ich immer wenn's nicht tut kann ich noch mal drauf schicken soll jetzt kurze Pause und dann kommt glaube ich doch erstes LCD. Kurze Pause bitte eine rauchen und gucken so

Das zählen funktioniert in dieser Hinsicht anders, ja, wenn die Bit sozusagen invertiert dargestellt werden. Dann erzählte sozusagen andersherum. Also von genau der anderen da also komplementär, könnte man sagen, obwohl es das gleiche ist noch mal der Film

Wir müssen hier aufpassen dieses Kabel war noch nicht drin. Solang das nicht drin ist. Fehlt die Verbindung zu dem Prozessor? Auf dem Sockel selber hätte ich den anderen Prozessor raus machen müssen. Ich sage nein, damit bleibt er halten in der Schaltung letztens doch weil auch hier würde ich die Prozessoren rausnehmen, indem ich nämlich dieses Kabel es ist ein rotes, grünes und blaues, sozusagen Stecker verbindet ist es mit der eigentlichen Programmierung. Damit würde der andere Prozessor nicht programmiert. Ich hab es trotzdem raus gemacht das kann ja sein zum Beispiel. Es ist nämlich dann vielleicht trotzdem noch mit den LED verbunden. Wie auch immer ist zwar nicht falsch kann man ruhig machen. Jetzt ist der atmega8 drin und er bleibt auch drin. Die Schaltung funktioniert vom programmieren. Prima. Ich mache einen Film

siehe da, es tut, der befehl zum beschreiben des prozessors:

avrdude -c stk500 -p m8 -P /dev/ttyS3 -U flash:w:m8ledcount06102026.hex:i

so, das programm wurde uebersetzt und irgendwo muss die binary version sein! sie endet mit hex

hex files = binary files sind meist dasselbe

weil man eben sagen kann

 
0b1111 1111
entspricht
0xff

was anfaengern - oft nicht gefaellt, wuerden sie ein programm binaer darstellen

entschuldigen sie das wort anfaenger - das ist keine kritik!

ich kenne das: neros burning rom!

sie haben eine DVD - wie rippen? sie haben ein smartphone - wie den binary code unterbringen!

bitte - auch an die herren richter, an alle die das so schoen finden! oder entschuldigung! sitzen unter den richtern, vielleicht lauter heimliche modelleisenbahnliebhaber!

so, ... sie wissen ja! (alte hasen?)

eine bitte! man weiss nie wo man steht!

computersysteme 1/2 ist uebrigens fuer mich ganz was besonderes, doch gerade modelleisenbahner kennen ihn: den atmega8

trotzdem computersystem i/ii ganz besonders. nur:

frage: sind leute, die so cool - linux projekt integriert - das richtige tun - sexy homepage - assexuell - jugendlich - stylisch

ich habe ein buch ueber die zeichnungen von sagen wir eher maedchen und kindern - trotzdem genial stilistisch auf der homepage. - doch anders als im pc -

...volkseigen eben ...nur: sehen sie, wenn ich sage anfaenger

dann meine ich: windows PC

nehmen sie linux. die idee sachen so dar zu stellen und inzwischen achte ich windows - z.B. wg. excel

wer so etwas kann, braucht kein excel? sehe ich nicht so: zufallsexperimente - blos machen! jeden tag wuerfeln!

witz! nein! tun!

nur: sehen sie: linux - bash - usw. sie bieten ihnen

hexdump an

programme - die dazu da sind - ihren code hex maessig an zu zeigen, wie alles batronix ...

hex heisst

0xff 0xad 0x32 0x1c
ok und binaer ...
0b1111 1111
wo leben sie? computer? homepage, darstellung? ich habe ein buch mehr oder weniger von kindern, psychos - ohne geschrei koennen es nachvollziehen, style fuer homepage.

wenn sie jetzt noch da sind - und hier die dampfmaschine - maschine deutschland

ich sage mal so: das ist kein witz

aber sagen sie: im linux projekt arbeiten beschoenigt menschen, die entwickelten angeblich codes, mit denen sie ihr smartphone flashen!

tolle idee!

sie messen das so: wie viele GigaFlops kann ihr ding! Kurz, vom aussehen ein mensch wie auch immer!

wir haben ein mittel gefunden wie man ein smartphone flasht!

toll,weil dabei muessen wir dieses und jenes umgehen

ich bin bei arbeitsmaschine deutschland - gesamtvolumen der arbeit

das aussehen des menschen im aneblichen linux projekt:

schon in der homepage - fantastisch!

frage: warum wollen sie ihr smartphone flashen

ich habe eine bitte: kaufe ich ein messgeraet mit zeiger - also ein messinstrument - dann ist es so und keiner soll dran manipulieren

ich habe mir ein iphone gekauft, damit da drauf ein mac os x betriebssystem ist.

ich habe eine bitte - wenn ich sage - ich bin aber bei der arbeitsmaschine deutschland - dann ist das real

das ist keine vergangenheit. nicht computer alleine!

ok?

nur: ich kriege meine schweine nicht auf dem bildschirm, bildschirm akzeptiere ich. das ist aber kein scify, keine soap opera!

so: ich wuerde ihnen trotzdem linux empfehlen!

auf dem pc! warum?

weil! wenn man fragt, ist das ein

BMP, ein JPEG, ein JPG

und ein burning und ein HEX und ein BIN

dann neigt das normale linux zu klaren strukturierung

die angst vor der endung, der angeblich guten darstellung geht dann weg...

und man kann endlich ordentliche programme, schreiben, wie bash skripting

#!/bin/bash 

# (c) david vajda 
# 06/10/2026
# einfach bash skript 

echo "hallo welt"
das waere wichtig und nun das flashen des controllers!

bei Produktionsmiteln bitte aufpassen! Linux kann man auf den PC machen, aber Smartphone!

Produktionsmittel immer so benutzen, wie sie vorgesehen sind

das assembler programm tut folgendes, generell haben wir ein binary digit ...ziffern und zahlen, bei denen die ziffern 0 und 1 reichen. sonst zaehlen wir

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ...
denken wir uns die ziffern
2, 3, 4, ..., 9
weg zaehlen wir
0, 1, [hier fehlt was], 10
wird zu
0, 1, 10
fort zu setzen
0, 1, 10, 11, 100, 101, ...
ok:

nun haben wir die anzahl der stellen. eine 4 ziffern lange pin ist z.B.

8723
ok. ebenso in der digitaltechnik
1001
ist ein nibble (4 Bit)

es folgen

Nibble 4
Byte 8
Halbwort (manchmal nicht, sondern wort) 16
Wort 16/32
Doppelwort 32
Quadword 64
Halbwort, manchmal haengt es wohl von der maschine ab.

8 bit, nebeneinander

(gluehbirnen) oder halt LED ...

heisst, sie blinken lassen

  1. Chaos?
  2. oder lustiges system

jedenfalls, 8 entsprechen gerade einem byte

der controller, ist so ein DIP, DIL (Dual inline Package) dort ist er unterbebracht. doch er ist in diesem falle ein prozessor - fuer viele controller - wg. speicher...

er kann rechnen. indem er zwei byte addiert. in der mathematik

c := a + b
enthaelt einen zieloperanden und zwei quelloperanden
rd, rs, rt 

s: source - quelle 
d: destination - ziel
t kann man fuer s nehmen, als zweites, alternative s1, s2

aber t bietet sich an.

ok: 8 bit lustig blinken lassen, heisst, im prozessor, die 8 bit zu aendern. tut der prozessor

doch was passiert im programm? konkret?

;; (c) david vajda
;; 06/10/2026
;; atmega8 - led count - slow

.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
l1:
com r16
out PORTB, r16
com r16
rcall r1
dec r16
rjmp l1

r1:
push r16
push r17
push r18
ldi r18, 0xff
r1l1:
ldi r17, 0xff
r1l2:
ldi r16, 0x02
r1l3:
dec r16
brne r1l3
dec r17
brne r1l2
dec r18
brne r1l1
pop r18
pop r17
pop r16
ret

.include "m8def.inc"
bei allen programmiersprachen ist es wichtig
  1. syntax
  2. semantik
die syntax ist die grammatikalische struktur einer sprache! doch vorsicht! was ist eigentlich syntax?

wenn wir haben

mensch geht zu auto

ist das syntaktisch korrekt

ebenso in der mathematik

c := a + b
mensch [verb was es nicht gibt, seltsamer laut] zu auto

ist nicht vom klang her falsch, es ist syntaktisch falsch

c := a [operator den es nicht gibt] b

ist syntaktisch falsch, nicht nur ein rechtschreibfehler...

semantisch eher anzuzweifeln sind saetze wie:

autos fliegen im himmel, waehrend schiffe auf der strasse fahren

ok: hier gibt es manchmal irritationen schauen wir ins arabische:

SA - Sierra Alpha - steht wohl generell fuer himmlische goettliche dinge?

samma - himmel, say - sache, sa'ala fragen, sabaa - sieben

ok. komisch: sagara ist der baum und taira das flugzeug

09/11? was passierte wirklich?

der himmel ist samma - man geht von einem baum aus. der baum ist sagara - daran muesste ein apfel haengen - tuffa

SA - und TA sind wohl, so der eindruck im arabischen anders zu „bewerten``sorry die Aussage!

also: Tuffa und Samma - Apfel und Himmel wie Sagara und Taira - Baum und Flugzeug

sche... ein flugzeug kann mal in ein haus fliegen, sorry den toten, ich weiss es macht keinen spass.

trotzdem? wer weiss schon? ein mensch haette illegal ein funkgeraet ein board haben koennen - cb funk - ausversehen - aber warum haette der pilot das nicht zurueckgewiesen, dann eben doch ein genie - aber vielleicht anders, falsche funksprueche raus geben koennne, schon im haus

nicht interessant - oekonomisch nicht - wg: kamera obscura. medien - man soll auf andere nicht einwirken - ihre messinstrumente - und zum ablesen, es obliegt meiner nicht hin zu gucken und doch - zu sagen - wirke nicht ein.

trotzdem: das ist nicht die folge fuer die wirtschaft, sie tut es alleine. faehrt eine dampfmaschine die arbeit ueber uns - dann kann man es mal ertragen - wie immer zu genau genommen, aber hier entsteht das problem

kein problem des individuums, der verschwoerung, es sind wir alle und wir sind keine einzelphaenomene

und doch muessen wir lernen, unterscheidungen zu treffen.

diese idee verleitet die, die lust dazu haben, an den messzeigern, ventilen, einstellschrauben, ... oder im elektrischen, da gibt es halt widerstaende zum drehen, herum zu drehen, wie an einer dampflock

meiner sozialarbeiterin! z.b. der druck im kessel ruht auf uns allen. solange - entschuldigung, die schraube, das ventil, der messapparat richtig drin ist - schoen, doch hier ist das sensible, im ganzen. richtig drin schoen - nur wer sich daran zu schaffen macht, der macht es schlimmer - es muss sitzen

sorry an die opfer...

es ist nicht schoen zu sterben. nur:

die gesamt oekonomie - ist das problem - aber sich an einer stellschraube

stellen sie sich unten eine feder vor - der druck genauso wie vorher!

was tun die? nichts aber sie sind das was man nicht verdreht?

einzeln oder alles? banking oder currency

die gesamtmasse ist die oekonomie

und: trotzdem: im einzelnen die stellschraube. die tun nichts! und bitte nicht verdrehen! ok!

naechstes problem: wuerde alles so schoen stehen - dann wuerde die deutsche volkswirtschaft, als gesamtmaschine surren. ist das gut? sicher! trotzdem muss man mit einem klopfen manchmal rechnen und nicht durchdrehen!

aber: wenn das so waere - waere ja das geld sehr stabil?

je stabiler die arbeit um so stabiler der preiss, die maschine surrt!

tut sie das? was passiert, sehr stabile maschine, stabiles geld - USA? heisst?

extremes chaos? sollen wir helfen, unstabil machen?

halte nichts davon! weil:

jeder ist immer noch egoist! sie sagen: ok: jetzt sind die amerikaner im chaos! das ist halt das dumme! sie wollen allen deutschen helfen. weil wenn alle deutschen nichts zu essen haben sie nichts!

ok: aber dann muss jeder deutsche denken, ich bin es also kann deutschland. und dann muessen das halt amis auch tun

ansonsten wuerde ich mich nicht ueberrumpeln lassen

lauter schuechterne leute, die sind gnaedig - haben lerndefizite! sie sind betroffen, dem staat gegenueber gnaedig, erfuellen, sie jeden wunsch

eine formel aus den median abgehoert, folgen sie dem bild!

aber: sie sind gnaedig! trotzdem machen sie sich zu schaffen!

warum sagen sie nicht! aber herr richter: ich sage es so - anders thema!

zurueck zum thema!

also, zu unserem programm:

.include "m8def.inc"
also, zu jeder programmiersprache gehoeren syntax. erst mal

dazu gehoeren die befehle

add, ldi, ...
usw. was wir jetzt tun:

da der prozessor. nun die werte im inneren errechnet .... um auf den led. und nun muessen wir aussen anzeigen..

der prozessor hat aussen pins

DIP - DIL - Dual inline Package.

da wir die pins nebeneinander haben - 8 Bit - bietet sich an...

die pins nebeneinander und pin fuer pin - led fuer led ...

mit kabeln verbunden - auf dem STK500 bereits drauf

ok. doch wozu?

include "m8def.inc"
jede programmiersprache hat syntax. semantik ist wenn wir etwas seltames schreiben, unter umstaenden - bleibt der prozessor „haengen``...macht nichts mehr...

ok: allerdings ist das ein atmega8 prozessor

es gibt viele weitere attiny...

sie unterscheiden sich vom auesseren, anzahl der pins. nicht immer will ich 8 led.

8 Bit kann ich gemultiplexed ueber ein bit uebertragen...

1001 1101
kann ich ueber ein bit uebertragen, mit t = (1, 2, 3, ...)
  1. 1
  2. 0
  3. 0
  4. 1
  5. 1

ok...

das entspricht dem attiny auf unserer sim karte...

hier ist VCC, VPP, .. VPP Programmierspannung, VCC, Versorgungsspannung - 5V GND - Ground und D0

koennte man sagen: sonst PD7 ... PD0

oder mehr PB7 ... PB0

und auch: PC7 .. PC0 und weitere

ok: dadurch unterscheiden sich prozessoren.

doch nicht nur das: eben ein controller hat einen Stack. und einen Festwertspeicher - zwei sogar. und einen RAM

EPROM und Flash EPROM - Programmspeicher und eine Art Speicher wie festplatte

die groessen unterscheiden sich. so wie die Ports.

Ports sind besondere Register, in die ich daten schreibe. Ports selber liegen wie im Speicher nebeneinander und haben eine Addresse

damit ich allerdings. die addressen der ports nicht einzeln aufschreiben muss, gibt es so genannte Konstanten

XYZ .equ 100
z.B. ich glaube das ist hier falsch geschrieben, in dieser sprache - vermutlich mit - gleichheitszeichen = waere eine moeglichkeit die 100 als XYZ zu definieren

ok:

SPH und SPL sind solche Konstanten

kleine Prozessoren dieser reihe, haben nur auf 8 Bit Addressen eine festlegung (attiny)

SP. ok.

und DDRB und PORTB

gehoeren auch dazu

was wir jetzt machen. wir initialisieren den stack.

das brauchen wir wegen der subroutine - diese verlangsamt - durch hochzaehlen der register, das hoch oder runterzaehlen der LED - doch diese werden prozessor intern in registern nach oben oder unten gezaehlt - ...

das muessen wir am PORTB ausgeben.

doch der PORTB muss als ausgabe Port Deklariert werden. ueber DDRB

da ein PORT 8 bit ist, muss jedes bit eingestellt werden.

0b1111 1111
entspricht alle Bits sind ausgabe

0xff entspricht 0b1111 1111

so: wenn das auf DDRB, dann PORTB ausgabe. und das tun wir ...

so jetzt testen...

nein, naechster schritt uebersetzen. das war das programm, mit dem ich etwas schreibe. im naechsten als binaercode...

mit avra

avra
unser assembler

mit avrdude an den controller und das programm ist drauf...

;; (c) david vajda
;; 06/10/2026
;; atmega8 - led count - slow

.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
l1:
com r16
out PORTB, r16
com r16
rcall r1
dec r16
rjmp l1

r1:
push r16
push r17
push r18
ldi r18, 0xff
r1l1:
ldi r17, 0xff
r1l2:
ldi r16, 0x02
r1l3:
dec r16
brne r1l3
dec r17
brne r1l2
dec r18
brne r1l1
pop r18
pop r17
pop r16
ret

zweiter quelltext:

;; (c) david vajda
;; 06/10/2026
;; atmega8 - led count - slow

.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
l1:
com r16
out PORTB, r16
com r16
rcall r1
dec r16
rjmp l1

r1:
push r16
push r17
push r18
ldi r18, 0xff
r1l1:
ldi r17, 0xff
r1l2:
ldi r16, 0x02
r1l3:
dec r16
brne r1l3
dec r17
brne r1l2
dec r18
brne r1l1
pop r18
pop r17
pop r16
ret

;; fuer die richtige ausgabe, dieses programms, schnell geshrieben, noch mal die umwandlung in jpeg nachdem ausdruck in pdf. zur korrekten darstellung hier, geht mit

;; pdftoppm -jpeg m8ledcount06102026.pdf m8ledcount06102026.pdf.jpeg
in der bash (konsole)

So, jetzt hab ich ihren RS 232 Kabel

Wenn wir das haben, dann dachte ich ja gut. Für den Apple Laptop brauch ich jetzt ein USB Adapter allerdings ist mir aufgefallen den hab ich an dem PC kann man das Ding direkt ein schrauben ohne den USB Adapter d.h. ich kann jetzt gleich loslegen.

Tut also dann kommt jetzt noch mal Raucherpause einen Energy Drink kaufen dann kommt Stadt diesen Controller, der da drin ist ein

atmega8

Und erst mal beginnt das Programm mit der üblichen Zählschleife danach die anderen Dinger, die ich damit machen kann

Heute Nachmittag Computersystem eins und zwei auswendig lernen dann komm jetzt morgens immer die Schaltung heute Nachmittag Computersysteme eins und zwei und Chemie und die Dampfmaschine mehr ist nicht zu tun

Also soll heißen Programme?

Daneben sieben Segmentanzeige und dann 14 und 16 S Segment anzeigen

Heute Nachmittag das Zeug auswendig lernen einmal Dampfmaschine und Chemie dazu soll jetzt noch mal Energy Drink und eine rauchen und dann fertig

hier steht 10 ... 15V Wechselstrom?

ist wechselstrom staerker? das geraet war gleichstrom???

egal, ich nehme den unteren wert, wie man sieht: wechselstrom ...an alles gedacht...

Ich hatte vorher dieses diese Spannungsversorgung ich weiß aber nicht, ob das zu viel war. Ich muss kurz gucken im Internet, wie viel es möglich ist an Spannung , weil mit diesem Ding ich glaube der Bereich ist variabel und es passt trotzdem noch ein bisschen zu stark. Das Netzteil macht es besser so.