20250321

ich hatte eine idee https://crycode.de/serielle-schnittstelle-ueber-ethernet/ ich dachte darueber nach mit

root@work:/home/david# ifconfig lo:2 127.0.0.2 netmask 255.0.0.0 up
kann ich ja ein netzwerkinterface mit einer addresse einrichten

nun folgendes: parallel oder seriell ist vollkommen egal


dd if=/dev/xyz of=/dev/abc
wird egal was wie ist - einfach den datenstrom weiterreichen

wenn ich von der seriellen schnittstelle daten entnehme, kurz und gut nicht einzelne bits

das habe ich vorher vergessen. rs232


1 oder 2 stopbits
1 startbit
paritaet: odd, even, no
databits: 5, 6, 7, 8, 9
und: baud rate - wie viele zeichen pro sekunde, das heisst, je ob 5 6 7 ...

gut aber: hardware architektur

mips32 oder atmega8

atmega8: seriell


UBRR UBRRL UBRRH - UART Baud rate register
UCSRA UCSRB UCSRC - UART CONTROLL AND STATUS REGISTER
UDR UART DATA REGISTER
Gut, ich glaube D0 und D1 an PORT D PD0 PD1 ist RS232 an MAX232

aber:

im gegensatz zu rs232 ein fertig eingerichtetes TCP/IP Netzwerk kann man genauso gut an PORTD 8 bit PORT C ...

machen, das netzwerk hat nichts mit RS232 zu tun

oder: RS232 ist seriell, aber: Ethernet vermute ich auch

gut: hardware: MIPS32, Daten - Port Block Diagramm, fernuni hagen, nicht drin,einfachster, MIPS32, kann man mit IN/OUT Befehl 1 Port dazu machen

gut - aber: Ob seriell rein kommt oder nichts, also das geraet hat mit dem Datenstrom nichts zu tun


dd if=/dev/ttyS0 of=test.txt
dd if=/dev/zero of=test.txt
dd if=/dev/sda1 of=test.txt
kommen immer daten an

also warum nicht festplatte


/dev/sda1 oder serielle schnittstelle

/dev/ttyS0 als netzwerkschnittstelle?
ein netzwerkgeraet - eine netzwerkkarte - keine falsche vorstellung unterscheidet sich als io device nicht in der hinsicht her von einer festplatte, dass es ein device ist. das wollte ich mit seriell sagen. das ist natuerlich albern darueber zu spekulieren seriell oder parallel das ist eher was fuer windows daus - nur - vor einer netzwerkkarte hat man respekt vor einer festplatte nicht. woran liegt das? weil man glaubt ein netzwerkinterface ist etwas besonderes, denn es liefert den draht zur welt. von eu nach us und zurueck. doch aus der sicht des PC's selber ist das nicht so. der pc sieht keine usa und kein kabel in die welt hinein. das wollte ich mit mips32 nur sagen, ist der in vhdl vollkommen fertig - alle befehle, fehlt ein port - gut dann koennen ueber memory mapped io also addressen als ports, lauter geraete dran. aber in diesem falle nimmt der mips32 die netzwerkkarte als geraet war. was einen datenstrom liefert. woher der kommt ist egal, er kommt durch ein kabel. was den unterschied in die usa wahr macht ist nur, dass lauter verstaerker dazwischen sind, das weiss der pc nicht, fuer ihn ein geraet.

Antwort:

oder noch besser. sie richten nicht das geraet als netzwerkinterface ein, sondern einen prozess

egal - nach minix sind devices letzten endes prozesse im kernel

logisch - diskette, terminal, tastatur, ...

sie sagen geraet, ja, aber das ist eine funktion in c und assembler.

wenn ich diskette sage schon, das hat nichts mit dateisystem zu tun

aber ich habe zumindest bei minix pro geraet beim IBM PC eine funktion. doch eine funktion ist letzten endes nichts anderes als ein prozess oder umgekehrt

um auf den terminal zu schreiben oder der ist kompliziert muss ich dinge tun. aber ein prozess ist programm, funktion auch. besonders main

gut - aber - bei minix, so wird es bei linux sein, werden diese geraete prozesse prozesse fuer jedes typische IBM PC Geraet in als Prozess im kernel einzeln in den RAM geladen

und ich wuerde sagen sind unter /dev/floppy dann erreichbar, das der witz - minix lerne ich noch auswendig

jetzt ist das shit - wenn sie die festplatte als netzwerk interface einrichten wuerden, vermute das ginge rein theoretisch, dann koennten sie dahin ja per tcp/ip netzwerk verkehr betreiben

aber die idee ist dumm. sie wuerde funktionieren, aber nur solange. solange auf der festplatte auf den sektoren nacheinaneder ein tcp/ip datenstrom stuende, der ihrem datenstrom entspricht, den sie senden/empfangen datenpakete abfrage und antwort, waere das ok, aber auf der festplatte stehen die daten ja fest angeordnet

anders: prozess zu device machen und - dieses device ist ein prozess der den netzwerk verkehr versteht

gut besseres beispiel - modem arbeitet ueber serielle schnittstelle - gut normalerweise /dev/modem

unabhaengig davon sie benutzen kein modem - sie nehmen

null modem - zwei pc und auf beiden laeuft tcp/ip

sie haben rs232<->rs232 auf beiden tcp/ip

loesung, sie muessen


/dev/ttyS0
als netzwerkinterface einrichten...

steht in dem artikel angeblich

https://crycode.de/serielle-schnittstelle-ueber-ethernet/

probieren wir mal aus


socat -d -d tcp-l:60001,reuseaddr pty,link=/tmp/ttyV0,b9600,raw,echo=0,mode=770
das hat mit

ifconfig zunaechst nichts zu tun, das bezieht sich auf fertiges netzwerkdevice nicht irgendeines

ifconfig auf /dev/ttyS0 liefert

root@work:/home/david# ifconfig /dev/tty0 127.0.0.2 netmask 255.0.0.0 up
SIOCSIFADDR: No such device
/dev/tty0: ERROR while getting interface flags: No such device
SIOCSIFNETMASK: No such device
/dev/tty0: ERROR while getting interface flags: No such device
root@work:/home/david# ifconfig lo:2 127.0.0.2 netmask 255.0.0.0 up
root@work:/home/david#
ein netzwerkgeraet - eine netzwerkkarte - keine falsche vorstellung unterscheidet sich als io device nicht in der hinsicht her von einer festplatte, dass es ein device ist. das wollte ich mit seriell sagen. das ist natuerlich albern darueber zu spekulieren seriell oder parallel das ist eher was fuer windows daus - nur - vor einer netzwerkkarte hat man respekt vor einer festplatte nicht. woran liegt das? weil man glaubt ein netzwerkinterface ist etwas besonderes, denn es liefert den draht zur welt. von eu nach us und zurueck. doch aus der sicht des PC's selber ist das nicht so. der pc sieht keine usa und kein kabel in die welt hinein. das wollte ich mit mips32 nur sagen, ist der in vhdl vollkommen fertig - alle befehle, fehlt ein port - gut dann koennen ueber memory mapped io also addressen als ports, lauter geraete dran. aber in diesem falle nimmt der mips32 die netzwerkkarte als geraet war. was einen datenstrom liefert. woher der kommt ist egal, er kommt durch ein kabel. was den unterschied in die usa wahr macht ist nur, dass lauter verstaerker dazwischen sind, das weiss der pc nicht, fuer ihn ein geraet.

gut und jetzt:


socat -d -d tcp-l:60001,reuseaddr pty,link=/tmp/ttyV0,b9600,raw,echo=0,mode=770
gut, das hat noch nicht so toll funktioniert

egal, ich schreibe die sachen jetzt weiter auswendig

ok, ich kann ihnen auch, jetzt wo sie mich unglaeubig angucken, das hat jetzt nichts mit mir sondern mit ihnen zu tun - ich betreibe einen web und mailserver unter www.dvajda.de

und nebenbei einen ssh server

sie sollten das nicht verwechseln

1.) das betriebssystem minix ist relativ schnell vom quelltext auswendig gelernt 2.) ich weiss ziemlich gut, wie man einen apache2 und postfix mailserver konfiguriert, nebenbei muss man den ueber


apt-get install postfix
installieren und bei einem server ist es wie bei den meisten programmen, ein server ist ein programm

ein server ist meist vorkonfiguriert. ein paar wenige handgriffe genuegen

3.) sie muessen C lernen. sie brauchen wissen ueber hardware architektur - deswegen computersysteme I/II

In C gibt es funktionen fuer den Dateizugriff

1.) open, fopen, fclose, fread, fwrite, fgets, fseek ... 2.) was viele nicht wissen netzwerk zugriff

netzwerk zugriff tcp/ip ist etwas komplizierter als dateizugriff

bei ersterem haben sie File pointer bei zweiteren Sockets

der Unterschied: Server und client verwenden - TCP/IP

Funktionen heissen hier bind, connect, listen, send recieve oder so

der server lauscht bis sich client meldet

wie funktioniert das nun?

tcp/ip funktioniert so

tcp zerlegt den datenstrom in pakete. ip macht die senderaddresse dran und absender.

routing heisst nur netzwerkmaske und subnetting

aber was heisst tcp/ip aus sicht von C - nur das muss man verstehen

mit den Netzwerk funktionen in und dem Kernel wird der Datenstro

Request und Response der Anwenderschicht gehoeren mit zum reinen Nutzerdatenstrom

der Datenstrom ist etwa


'Hallo Welt'
wenn ich das uebertrage in 5 pakete

muss ich es zerlegen und ich muss die addressen anfuegen. das sind schichten und das reiche ich nach unten weiter. innerhalb des PC.


Wenn sie 'ha' 'll' 'lo Wel' 't'
uebertragen muessen erst pakete gemacht werden und addressen dran

und nicht nur das: ports - server und clients sind prozesse. sie haben 100 mitsamt servern. die ports binden den datenstrom an einen prozess

gut - und was hat apache2 webserver damit zu tun?

muss konfiguriert werden.

zum beispiel dateien in


/var/www/html/
gut, sie haben 1.) file zugriff 2.) netzwerk zugriff in c

abgesehen von php tut apache 2 nur eines. er guckt in /var/www/html nach der datei und lenkt sie auf das netzwerkinterface

dafuer muessen sie apache2, postfix, ... konfigurieren

das ist etwas anderes, als netzwerkverkehr machen

apache2 als webserver hat andere configs als postfix.

ich mache das jetzt so, ich schreibe das fertig, dann bestelle ich bei reichelt.de noch 2 MAX232, und kann meine Atmega8 mit meinem PC reden lassen uebe RS232, dazu ein LCD mit LCD Controller HD44870 das ist das eine. nachher muss ich in die marienburgerstrasse 7, will anpflanzen, dann noch. davor uebungen machen, gleich, atmega8, auf und abzaehlen, vielleicht ttl - dnf dann ich lerne ja minix. ich lerne nicht laut auswendig kernel, mm, fs floppy ... schreibe ich genauso hin, wie das hier alles.

so, ich habe lcd mit hd44780 aehnlichen kontroller bestellt, aber mit stiften, dann passt es in das board - 2 max232 und 1 mikrofarrad elkos, dann kann ich rs232 bald von atmega8

minix auswendig lernen, heisst, quelltext, also programmiert, nicht die benutzung klib88.s mpx88.s ... und bausteine 8253 pic 8259A ...

Wie man sieht es geht nicht mal die LEDs an. Das Problem wird schnell gelöst sein ich werde es noch in den Griff kriegen. Irgendwie ich hab gerad allerdings gar keine Lust. Es müsste jetzt eigentlich alles so sein wie sie ist und es geht Nix das wird sich schnell lösen, aber ich hab gerad keine Lust und jetzt muss ich mal Pause machen.


david@work:~$ su
Passwort:
root@work:/home/david# ifconfig lo:1 127.0.0.2 netmask 255.0.0.0 up
bash: ifconfig: command not found
root@work:/home/david# PATH="$PATH:/usr/sbin"
root@work:/home/david# ifconfig lo:1 127.0.0.2 netmask 255.0.0.0 up
root@work:/home/david# ifconfig lo:2 127.0.0.3 netmask 255.0.0.0 up
root@work:/home/david# ifconfig lo:3 127.0.0.4 netmask 255.0.0.0 up
root@work:/home/david# ifconfig lo:4 127.0.0.5 netmask 255.0.0.0 up
root@work:/home/david# ifconfig -A INPUT -d 127.0.0.5 -j DROP
ifconfig: option `-A' not recognised.
ifconfig: `--help' gives usage information.
root@work:/home/david# iptables -A INPUT -d 127.0.0.5 -j DROP
root@work:/home/david#

david@work:~$ ping 127.0.0.5
PING 127.0.0.5 (127.0.0.5) 56(84) bytes of data.
^C
--- 127.0.0.5 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3072ms
david@work:~$ ping localhost
PING localhost(localhost (::1)) 56 data bytes
64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.040 ms
64 bytes from localhost (::1): icmp_seq=2 ttl=64 time=0.055 ms
^C
--- localhost ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1007ms
rtt min/avg/max/mdev = 0.040/0.047/0.055/0.007 ms
david@work:~$

root@work:/home/david# iptables -F
root@work:/home/david# iptables -A INPUT -d 127.0.0.5 -s 127.0.0.1 -j ACCEPT
root@work:/home/david# iptables -A INPUT -d 127.0.0.5 -j DROP
root@work:/home/david# ^C
root@work:/home/david#

# das funktioniert nicht mit dem FORWARD - aber mir ist klar wieso - es gibt die tabellen wie ... nat mangle raw - ich glaube filter, oder so  und die chains PREROUTING, INPUT, ... das selber legt ja aber nur fest, an welcher stelle der Paket Verarbeitung im Kernel die Regel angewendet wird, wuerde ich so mal sagen, aber die Aktion ist nicht FORWARD - also was wir erreichen wollen NAT - wir wollen ja NAT - und das muesste entweder ACTION sein oder eigener Option. Gucken wir nach.
root@work:/home/david# iptables -F
root@work:/home/david# iptables -A INPUT -d 127.0.0.5 -s 127.0.0.1 -j ACCEPT
root@work:/home/david# iptables -A INPUT -d 127.0.0.5 -j DROP
root@work:/home/david# ^C
root@work:/home/david# iptables -A FORWARDING -s 127.0.0.1 -d 127.0.0.4 -j ACCEPT
iptables: No chain/target/match by that name.
root@work:/home/david# iptables -A FORWARD -s 127.0.0.1 -d 127.0.0.4 -j ACCEPT
root@work:/home/david#

# obwohl das sagt was anderes, das sieht so aus, als wuerde es ueber die tabelle nat gesteuert, alleine darueber
    # (Backslash bedeutet, dass es in der naechsten Zeile weitergeht)
    $> iptables -t nat -A POSTROUTING -p tcp -s 192.168.1.2 \
       --sport 12345:12356 -d 123.123.123.123 --dport 22 aktion
# nein, ich weiss, das war unsinn das bedeutet wohl etwas ganz anderes, dass naehmlich pakete von da nach da durchgelassen oder abgelehnt werden, wenn sie kommen, nicht dass sie umgeleitet werden vermute ich
   # TCP-Pakete von 192.168.1.2, Port 12345 bis 12356
    # an 123.123.123.123, Port 22
    # (Backslash bedeutet, dass es in der naechsten Zeile weitergeht)
    $> iptables -t nat -A POSTROUTING -p tcp -s 192.168.1.2 \
       --sport 12345:12356 -d 123.123.123.123 --dport 22 aktion

# nein, ich weiss, das war unsinn das bedeutet wohl etwas ganz anderes, dass naehmlich pakete von da nach da durchgelassen oder abgelehnt werden, wenn sie kommen, nicht dass sie umgeleitet werden vermute ich
   # TCP-Pakete von 192.168.1.2, Port 12345 bis 12356
    # an 123.123.123.123, Port 22
    # (Backslash bedeutet, dass es in der naechsten Zeile weitergeht)
    $> iptables -t nat -A POSTROUTING -p tcp -s 192.168.1.2 \
       --sport 12345:12356 -d 123.123.123.123 --dport 22 aktion

# Source-NAT: Absender zu 123.123.123.213 aendern
    $> iptables [...] -j SNAT --to-source 123.123.123.123
    # Maskieren: Absender auf ausgehendes Netzwerkinterface aendern
    $> iptables [...] -j MASQUERADE
    # Destination-NAT: Empfaenger zu 123.123.123.123, Port 22 aendern
    $> iptables [...] -j DNAT --to-destination 123.123.123.123:22


# also gut ich lasse es fuer heute ausprobiert, virtualhost apache2 + iptables, geht noch nichts
root@work:/etc/apache2/sites-enabled# nano 001-forwarding.conf
root@work:/etc/apache2/sites-enabled# iptables -t nat -A OUTPUT -j DNAT --to-destination 127.0.0.1-127.0.0.3
root@work:/etc/apache2/sites-enabled# nano 001-forwarding.conf
root@work:/etc/apache2/sites-enabled# iptables -F
root@work:/etc/apache2/sites-enabled# iptables -t nat -A OUTPUT -j DNAT --to-destination 127.0.0.1-127.0.0.4
root@work:/etc/apache2/sites-enabled# iptables -F
root@work:/etc/apache2/sites-enabled# iptables -t nat -A OUTPUT -j DNAT --to-destination 127.0.0.1-127.0.0.2
root@work:/etc/apache2/sites-enabled# nano 001-forwarding.conf
root@work:/etc/apache2/sites-enabled# iptables -F
root@work:/etc/apache2/sites-enabled# iptables -t nat -A OUTPUT -j DNAT --to-destination 127.0.0.1-127.0.0.2
root@work:/etc/apache2/sites-enabled# iptables -F
root@work:/etc/apache2/sites-enabled# iptables -L
ich gucke erst mal, dass die led blinken, da eigentlich das programm schon drauf laeuft, kann es nur eines sein, VCC und GND tun nicht, faellt mir ein.

Hat funktioniert und ich kann genau sagen wo der Fehler war. Ich hab's beim ersten Mal richtig gemacht beim zweiten Mal falsch wenn man diesen Pfostenstecker da einsteckt dann muss man halt doch beide Seiten vertauschen. Man kann das ablesen, weil beide Seiten vom Pfostenstecker auf beiden Kabeln auf beiden Seiten des Kabels verhalten sich gleich. Aber wenn man den rein steckt, dann verhält er sich doch spiegelverkehrt zu der Buchse, wo man ihn reinsteckendas hab ich jetzt ausprobiert zum Stecker und tatsächlich, jetzt tut's von der Programmierung.

Tollen Ergebnis, dass es mal wieder geht aber das trotzdem mal wieder zu viel angeht, weil Ausgang bei 000 Eingang und 111 Eingang. Und na ich probier das noch mal zurück entwickeln zu entwickeln. Vielleicht finde ich ja wieder in der entsprechenden Fehler wie beim letzten Mal und kann dann wieder ein Kabel aussortieren. Vielleicht

000 muss das eigentlich eins sein von daher aber ich probier es mal aus


0:1 0 0 -
6:7 1 1 -
1:5 - 0 1

0:1 0 0 -
1:5 - 0 1
6 1 1 0
das wirkt schon fast zur verwirrung aehnlich, dreht man das um

0:1 0 0 -
6:7 1 1 -
1:5 - 0 1

0:1 0 0 -
6 1 1 0
1:5 - 0 1
es wirkt so, ersteres ist das, was aktuell erscheint und letzteres was sein muesste, als waere hier einfach der pin, das bit not x0 in er gleichung 6 einfach unterbrochen

siehe da, dies mal ist es nahezu fantastisch, ich mache gleich einen film. zunaechst tausche ich das gelbe kabel aus, nichts passiert, dabei wirkte es vorne sehr verborgen, kaum tausche ich das weisse aus, zeigt sich das verhalten, das sich zeigen muss. dieses kabel gehoert aussortiert.

Das Video jetzt noch mal mit zweifacher Wiederholung zeigen also mit zweifacher Wiederholung des Blinkers. Es ist natürlich wieder interessant auch wird die Wiederholung überhaupt betrifft es ist interessant also es tut jetzt 100 pro gucken sehen und jetzt warten Sie im Moment. Sagt man so schön doppelt hält besser und wie sagt man so schön doppelt hält besser das scheint auch für die Fehler zu gelten und tatsächlich dadurch. Dadurch beweist es umso mehr, dass ich Recht hatte. Letztenendes doppelt. Hält besser in diesem Fall auch was den Fehler betrifft, weil die so Fehler beweist es nahezu eindeutig. Können, Sie sich noch als letztes Mal erinnern da hat die Schaltung wirklich getan 100-prozentig und dann gucke ich wieder hinweg den Film machen und das ist ja nun wirklich in mehrfacher Hinsicht doppelt gemoppelt kann man sagen dann dachte ich mache ich den schönen Film und auf einmal war das selbe Fehler wieder jetzt was also das für eine sehr doppelte Angelegenheit zu sein. Jedenfalls jetzt wieder die selbe Problem. Nur jetzt passen Sie mal auf, dann denke ich na gut okay gucken wir mal genau hin und in dem Fall der doppelte Fehler war noch mal ein doppelter Fehler weil jetzt war das wissen

ich habe mir noch eine siebensegmentanzeige bestellt - ich zeige gleich auf meiner homepage, was ich damit gebastelt hatte, aber ich habe ja ausgemistet https://www.reichelt.de/de/de/shop/produkt/7-segment-anzeige_rot_14_2mm_gem_anode-354446?nbc=1 und ein entsprechendes Dekoder https://www.reichelt.de/de/de/shop/produkt/decoder_mpx_4_to_7_4_75_5_25_v_dil-16-10668?nbc=1

https://www.reichelt.de/de/de/shop/produkt/7-segment-anzeige_rot_14_2mm_gem_anode-354446?nbc=1 ...

und eben lcd hd44870 aehnlich auch schon verbaut, findet sich auf homepage, aber ausgemistet, kommt uebermorgen

https://www.reichelt.de/de/de/shop/produkt/4x20_dip_textdisplay_gelbgruen-348141?nbc=1

der unterschied ist dass es ohne zu loeten in das steckboard passt, das ist gut zum ueben

damals homepage noch ituenix.de aber jetzt www.dvajda.de

Schaltung tut auf, Anhieb jetzt noch des tcp/ip Übung auswendig und dann muss ich weg

So, und jetzt baue ich die Schaltung mit der sieben Segment Anzeige Anzeige ich werde eine Zählschaltung machen, der der Controller zählt der atmega8 zählt so ganz einfach und dazu müssen wir zwei Sachen machen. Das erste wir müssen den bcd Decoder reinmachen, und das machen wir jedes Mal, weil das ist eine Übung im Gegensatz sozusagen zu allem, wo wir das BCD Dekoda und die sieben Segmentanzeige rein gemacht haben einmal gemacht haben, dann haben wir's so, dann können wir immer wieder benutzen das mache ich eben so nicht. Das soll ne Übung sein und dabei wird jedes Mal neu eingebaut so und d.h. auch das bcd Decoder jedes Mal neu einbauen genauso wie bei der RS 232 Kommunikation. Das werde ich Ihnen zeigen. Das erscheint schön auf dem Bildschirm. Ich hab schon die sub d 9 Stecker und so weiter und dann mache ich Transfer Meet und Receiver das ist Punkt Nummer eins wie immer und es wird jedes Mal komplett neu gemacht, weil da brauche ich den Max 232 und d.h. jedes Mal komplett neu mit allen Kondensatoren und sie soll alles aus dem Kopf kommen das ist Punkt Nummer eins und Punkt Nummer zwei. Mit der sieben Segmentanzeige haben wir behalten. Typisches Problem erst mal das BCD gehen. Das Problem Nummer eins und jetzt gibt's aber noch ein anderes Problem. Sie brauchen halt inverter stehen sie weil wenn sie das bcd, nehmen, wissen Sie, was dann passiert und sagen wir mal die sieben Segmentanzeige wissen Sie was dann passiert dann sind die alle falsch rum verstehen Sie die sind invertiert, die ein leuchten und die anderen leuchten nicht. Das ist nämlich das Problem. Dann sind sie genau andersrum, wenn sie das andersrum lesen können, ist gut. Ich kann's nicht deswegen müssen Sie inverter reinmachen so, das ist ganz einfach das mache ich sofort. Die Schaltung kommt sofort die tut auf jeden Fall genauso wie die Serie Schnittstelle. Sie werden sehen das geht jetzt sofort schnell. Ich muss jetzt noch mal mit meiner Mutter kurz reden paar soziale Worte wechseln im Sinne der Freundlichkeit und dann fange ich an ganz einfach so dann fange ich gleich an. Warten Sie kurz im Moment vorher spiel ich vielleicht noch mal ne Runde Klavier vorher noch mal ne Runde Klavier

Sie sehen. Nummer eins wie gesagt, ich kommentiert es jetzt. Nummer eins. Wir haben noch ein Foto das dritte und vierte wir haben hier unser Programmiergerät und was sieht man darauf? Man sieht eben diesen Pfostenstecker sag ich mal 10 Bit den hatte ich auf dem stk 500, was ich bei meiner Mutter gekauft habe als ich noch bei ihr gelebt hab sag ich auch mal zwei hatte ich damals gekauft. Damals waren 120 glaube ich hab ich bei meiner Mutter gelebt und hab mit Rauchen aufgehört und das werde ich nie wieder machen. Daher kam es aber genau die selben Dinger und das hab ich ja auch. Das ist typisch 10 Bit jetzt haben wir das Problem folgendesich kann natürlich jetzt guckt man sich das Foto mit dem Pfostensteck an Natürlich folgendes machen ich kann natürlich von dem Pfostenstecker so wie ich sie gemacht hab so hab ich's am Anfang gemacht sozusagen die Leitung sag ich mal ich weiß immer noch keinen gescheiten Namen dafür direkt in den Controller reinmachen das hab ich bisher bei keiner Schaltung sonst so direkt gemacht, sondern ich hab die immer erst mal rein ins Board rein gemacht und dann die Kabel zu dem entsprechenden Element. Also Bauteil das mache ich hier genauso. Jetzt hatte ich das Problem wie gesagt Was ist spiegelverkehrt das Problem bleibt und ich hab hier keine Mathematik, muss ich sagen das Problem bleibt bestehen. Also ich sag mal so, Sie haben Norden Osten Süden Westen bei allen diesen viereckigen Dingern kommt hinzu, dass sie bei den ic haben sie auf der einen Seite eine Einkehr und bei den Pfostendecker haben Sie also auf der einen Seite heißt bei den ic im Norden bei den Pfosten Steckern sagen. Wir haben sie im Westen Einkehrbung  je nachdem, wo sie sitzen sie sitzen im Problem klingt nicht als besonders interessant ist es vielleicht auch nicht aber sie haben trotzdem das Problem. Mir fehlt jedenfalls die Mathematik wann es war spiegelverkehrt und was nicht. Ich bin dahinter gekommen, dass beide Pfostendecker an dem 10 Bitkabeln oder Bus oder wie auch immer ich hab dafür keinen Namen das ist wieder ein Problem. Klingt komisch bei der Unterhaltung. Das gehen wir alle. Das Problem bleibt also wenn Sie beide Pfostenstecker nehmen, dann sind sie einander identisch. Also beide Pfostenstecker an beiden enden wenn sie die so reinstecken sind an beiden enden identisch. Ich hatte trotzdem keinen 100-prozentige Nachweis. Am Ende habe ich einen gefunden. Das brauchen Sie jetzt erst mal um den Controller zu programmieren das hab ich gestern gemacht und zwar in dem ich's genauso eingesetzt hab das ist letztenendes der elektrotechnische Beweis. Der kann nicht anders funktionieren und anders. Also sozusagen bei Tierversuchen sag ich mal so das ist wichtig was ich jetzt sage, wenn sie bei dir versuchen bei einem sag mir einfach nicht Bescheid und dann können Sie mir sozusagen Was die Wahrscheinlichkeitsrechnung betrifft, aus davon ausgehen, dass hier der Tierversuch so verläuft und das ist biologisch bewiesen ist anders hier. Sie können etwas mathematisch beweisen das ist mathematischer Beweis. Ich könnte jetzt sozusagen mir diese spiegelverkehrt und so weiter könnte ich mir genau angucken. Ich hab das Ding aber gestern genauso eingesetzt und ich konnte es programmieren. Wenn ich es falsch gemacht hab dann funktioniert das programmieren nicht das Problem ist, dass jeder dieser atmega8 Eine Signatur hat, meine Devise, Signature und die war gestern 000 erst mal und so weiter sechs mal die null Hexadezimal Code wenn sie das Problem nicht haben, dann kommt er die weiße Signature von dem atmega8 mit dem normalen stk 500 ist relativ schnell gemacht aber das Problem hier bleibt. Sie haben die alten klassischen Probleme das müssen Sie wissen, wenn sie sagen, das ist aus der Informatik. Nicht relevant. Lines, Thorwald, ich sag leider doch, weil ob sie sich über Bus Kabel unterhalten oder die Kabel, die irgendwo reinstecken oder die Pins. ich sag mal, wenn sie sich unterhalten, dann werden sie alle feststellen. Das Kabel stecke ich da rein und an den Anschluss dazu sage ich ja okay das klingt jetzt für sie nicht besonders richtig besonders. Das ist jetzt nicht die Informatik des alleine Thorwald und die denken an irgendwelche hochrangige Mathematik. Ich sag mal so wenn sie das Kabel in den Anschluss reinstecken, dann kann ich gern 50 pro aller Leute Ding, auweia und 25 pro zehn von dem gönnst genauso wenig wie sie. Ja von dem Problem stehen sie immer immer noch d.h. wir haben ja schon mal ein Problem mit dem Namen das müssen wir uns einfach merken. Zweites Problem. So zweites Problem ist mit dem sozusagen spiegelverkehrt. Das Problem ist immer noch nicht gelöst verstehen Sie hier fehlt uns mathematische Formel und ich sag ob das Problem trivial ist oder nicht trivial oder nicht. Ich sag, hier fehlt die mathematische Formel. Die mathematische Formel können Sie sich selber ausdenken dann beweisen Sie was und ich sag es tun wir nicht. Ich sag, das tun wir aus einem einzigen Grund nicht, weil sie glauben, dass kleine mathematische Effekte es gibt es zum Beispiel da wie soll man sagen, in der Graf Theorie gibt's lauter kleine Sätze, die im Wirken nicht besonders großartig sagen wir mal da würde würden Sie mir ein bisschen Fleiß dahinter kommen und ich sag trotzdem, das ist die Aufgabe von Mathematikern. Sie müssen erst den Satz lernen, ob der einfach ist oder nicht. Sie müssen ihn lernen. Hier fehlt da leider ich hab einen anderen Beweis verbracht, der ist nicht mathematisch, der geht ganz anders. Ich hab das Ding reingesteckt und genauso wie ich es gedacht hab hab ich funktioniert und ich kann zu 100 pro beweisen. Es hätte es nicht tun können, weil auf der einen Seite ist. VCC das ist sozusagen unser 5 v wollt und auf der anderen Seite ist GND ganz einfach und das ist nicht der perfekte Beweis in diesem Fall. Es gibt noch einen anderen Beweis das sind fünf Kabel . Ich sag jetzt ich weiß immer noch nicht was was die Sinn die müssen Sie zur Programmierung benutzen und so funktioniert es dann ganz einfach ist es erwiesen, sozusagen elektrotechnisch nicht mathematisch ordentlich im Tierversuch Wahrscheinlichkeit hier bewiesen. Diese Stecker sind reingesteckt sozusagen. Wie soll man sagen Spiegel gleich so das hab ich jetzt gemacht und jetzt stecke ich das Ding noch mal rein. Ich sag ihm warum das mit dem stk500 alles viel einfacher ist. Sie haben halt diesen Sockel, dann müssen Sie nur ihren atmega8 acht reinsetzen. Da können Sie auch andere reinsetzen. Größere kleinere können Sie einfach reinsetzen und sie könnte Signal für die LEDs oder das LCD können Sie einfach abnehmen. Sie können genauso zehn Bus Kabel rausnehmen. Es ist hier schon mal komplizierter. Ich muss die Sache jetzt noch mal aufbauen.

Stecker im Programmiergerät Stecker selber und wie gesagt die sagen wir Kabel auf dem Bord alle eins zu eins Spiegel gleich

https://cdn-reichelt.de/documents/datenblatt/A300/ATMEGA8xxx.pdf

https://www.reichelt.de/de/de/shop/produkt/universal_isp-programer_avr_stm32_esp_lpc-305203?nbc=1

... so hier haben Sie das Daten sheet vom Programmiergerät und vom atmega8 wollte ich nur sagen und da haben Sie die Pins Bit oder was auch immer. Das müssen wir mal überlegen wie d.h. und die sehen Sie drin und jetzt müssen wir das genauso machen. Wie's da drin steht wollte ich übrigens noch sagen das hat sich bisher verheimlicht. Dann müssen wir jetzt leider reingucken. Das Data Sheet. Ist eigentlich das Wichtigste was überhaupt gibt und jetzt gucken wir das gleich angebrachte und programmieren das erst mal und dann auf ne andere Platine sozusagen des B CD Decoder die sieben Segmentanzeige

Das Programmieren müsste jetzt eigentlich gehen. Das Programmieren müsste jetzt eigentlich gehen. Ich probier's mal aus wenn's geht ganz gut dann mache ich ein Foto von Screenshot hat es funktioniert und dann kommt nur noch das B CD LCD und wir müssen kein Extra Programm schreiben weil es soll ja nach oben zählen Und denk nebenbei Zähl Programm und es muss nichts mehr können

Und schau mal, es funktioniert nicht und was machen wir jetzt sehen immer das selbe Problem eigentlich steckt so wie sonst auch und schon mal wieder. Es funktioniert mal wieder nicht so wie vorher auch. Und dann tut's zwar hoffentlich wieder jetzt müssen wir gucken wo ist das Problem Ihr schon den ersten möglichen Fehler, SCK und OSC verwechselt. Orangenes und braunes Kabel, sag ich mal. Siehe da ist, war der Fehler. Siehe da es war der Fehler. Es hat funktioniert es hat programmiert

Siehe da ist, war der Fehler. Siehe da es war der Fehler. Es hat funktioniert es hat programmiert

Hab ich die sieben Segmente anzeigen Es müsste jetzt erst mal passen, zwei inverter Bausteine 7404 das ist das eine oben, weil wir auf einem nur sechs inverter Wir brauchen aber mehr vom sieben Segmentanzeige her sieben Segment plus ein Punkt dann unten des bcd Decoder dazu VCC und Ground Bei der sieben Segmentanzeige muss ich jetzt gucken. Was Ground ist und VCC, das weiß ich bisher noch nicht. Dazu brauchen wir das Datenblatt ebenso für das bcd Decoder , weil das weiß ich auch nicht aus

https://cdn-reichelt.de/documents/datenblatt/A500/XBVISHAY_LED-ANZEIGE-TDSL51_EN.pdf

#3414#>https://www.ti.com/lit/ds/symlink/sn74ls247.pdf?ts=1742477156041&ref_url=https Anderes Problem. Ich hoffe, dass sich das nicht auswirkt. Ich sehe ein anderes Problem. Ich hoffe, dass sich das nicht auswirkt. Das eine sind halt TTL S A ALS und die andern CMOS muss mit C Ich hoffe es funktioniert trotzdem. Ich geh mal davon aus, dass es das tut in dem Fall.

Bisher so gleich fertig

Ist was witziges passiert gucken Sie mal ich kann's direkt testen in diesem Fall. Es gibt scheinbar noch ein anderes bcd Decoder , und ich weiß nicht, welches ich als letztes hatte, wurde an der sieben Segmentanzeige. In diesem Fall ist es andersherum wenn sie das angucken dann steht es steht die Ziffer also binär auf zwei und wenn sie jetzt das invertierte an den LEDs angucken also an den sieben Segmenten, dann haben sie jetzt also es tut auf jeden Fall schon mal. Dann haben Sie jetzt die invertiert leuchten ich hatte eben so ne Null und das selbe war so in diesem Fall ist es nicht invertiert. Das Problem kann ich relativ einfach lösen, indem ich auch die Inverter drin lasse. Aber ich tue sozusagen die Kabel, die herausführen dahin, wo sie rein führen.

Jeden Fall haben wir ne zwei im nächsten Fall die Null

Jetzt müssen wir nur noch eins tun des Daten Wort sozusagen die 4 Bit was gezählt wird in den Controller rein und das richtige Programm drauf und dann muss ich schon zählen ganz einfach

So, jetzt kommt auf den Controllern Programm zum zählen und dann muss es eigentlich tun

Es zählt schon mal 123. Dann kommt zwischendrin unten Unsinn. Ich vermute nicht, dass es die sieben Segmentanzeige selber ist. Es kann ich auch testen weil ich kann dir sozusagen mit den einzelnen Kabeln sag ich mal unter den einzelnen Segmenten oder dem einzelnen Wort kann ich ja einzeln sozusagen mit VCC und Ground verbinden dann kann ich sehen, ob das funktioniert. Vielleicht stimmt das Programm auf dem Controller nicht es zählt jedenfalls 1-3 schon mal prima da muss ich gucken woran es liegt, dass es nicht weiter gut zählt. 1-3 geht gut dann gucke ich mal, woran es liegt.

Okay, ich hab's hingekriegt. Jetzt zählt's normal. Ich weiß was der Fehler war. Es hat bis drei deswegen gezählt. Logischerweise drei sind die ersten 2 Bit im unteren Bereich und das sind sozusagen 00 und11 Wahrscheinlich kann ihn jeder Informatiker sagen, wo dann das Problem liegt, wenn's von 00-11 normal zählt. Was ist es dann zählt die Zahlen von 0-3 dann wird's an was anderen liegen bald ist die unteren 2B sind dann wird oben was nicht stimmen und so war ich hab die oberen zwei Bits hab ich zufälligerweise die Kabel vertauscht und jetzt was ist jetzt passiert? Zählt das richtig? Und zwar perfekt ich zeige ihm das Film, jetzt hab ich die Kabel richtig getauscht. Jetzt zählt es richtig

So und ein ganz kleiner Fehler ist noch drin. Es zählt raten Sie mal bis sieben und was passiert dann dann fängt von vorne an. Ich kann Ihnen sagen woran es liegt aber es zählt prima bis sieben jetzt wo ich die Kabel getauscht hab. Gibt's einfachen Grund dafür gibt's einfachen Grund. Raten Sie mal welcher der ist das liegt nicht daran, dass die Kabel vertauscht sind sondern das liegt im Programm selber. Ich zeige Ihnen gleich den Quelltext und wofür ist das Programm? Raten Sie mal wofür ist das Programm? Das Programm ist dafür da unser dnf mit ttl gattern zu lösen, also drei Eingangs variablen und das hört natürlich nach sieben auf, weil es sind drei Eingang Gangs variablen, das kann ich gleich zeigen, weil sie immer nur drei zählen und das ist der Grund, das kann ich Ihnen gleich zeigen

Ja siehe da wovon meiner Annahme ausging es stimmt es war das Programm selber. Es zählt jetzt prima bis neun von null Problem sind halt die Ziffern danach aber das passt ja

Also ich bin beginne jetzt mal mit dem Max 232 einsetzen ganz einfach ich sag jetzt noch nicht das ist jetzt 100-prozentig fertig machen. Ich fang jetzt mal an weil die Wohnung ist noch nicht 100-prozentig fertig geputzt. Das Zimmer ist fertig und ich fang jetzt mal ganz langsam an den Max 232 einzusetzen. Erst mal

jetzt baue ich die RS232 schaltung - das baue ich jetzt, vorher pizza, dann RS232 erst transmit, dann recieve.

ich mache jetzt die schaltung

So, damit ist die Schaltung fast fertig wir brauchen nur noch


RxD
TxD
Und zwar auf beiden Seiten des max232

11 t1in
12 r1out
14 t1out
13 r1in
https://www.mikrocontroller.net/wikifiles/e/ee/AVR-RS232.png

Das müsste jetzt so gesehen eigentlich gleich gehen. Ich geh noch mal eine rauchen und dann probier es gleich aus

Ich denk mal so, ich denk es tut mehr als man meint, ich mein es hat schon prima getan. Irgendwas stimmt bei der Übertragung noch nicht aber jedenfalls die Programmierung hat funktioniert. Die sieben Segmentanzeige ist noch dran das ändert nicht die Flimmer schön die rxd und txd Stimm eigentlich und ich seh in der Konsole ganz falsch. Ist es nicht, weil unter diesem Gerät /dev/ttyS0 bzw 3 ist irgendein Datenstrom oder muss irgendwas sein kann nicht erkennen. Irgendwas ist drauf.

Hey, Leute es tut

Dies ist der alte Quelltext. Sie dürfen sich nicht täuschen. Es geht mir nicht nur darum, die Hardware selber zusammen zu stecken, sondern es geht mir auch jedes Mal darum, die Quelltext neu zu schreiben. In Assembler für den atmega8 lcd hd44780 serielle Schnittstelle und zum Beispiel Unterbrechung. Bei diesem funktionieren weiß ich inzwischen vom Programm Quelltext her. Ich schreibe natürlich den Programm Quelltext neu. Allerdings musste ich hier erst mal die Hardware testen und habe deswegen einen alten genommen.

In der Schaltung finden wir zwei eindeutige Fehler. Schauen wir mal genau hin. Erst mal auf das Board hier sehen wir vergleichen Sie es mit den alten Fotos vier Elektrolytkondensatoren dabei verbinden zwei direkt zwei jeweils zwei Pins auf dem Bord und zwei andere gehen quasi an GND und VCC . Wenn Sie genau hinschauen hatte, ich vergessen diese entsprechend zu. GND und VCC. Zu verbinden das andere Problem des Sub d 9 Female Stecker nummerniert sich logischerweise von 1-9 erst die fünf PIN im Norden, dann die im vier PIN im Süden durch die Nummerierung geht von Osten nach Westen. Andersherum als ich dachte, das hab ich korrigiert und jetzt funktioniert es ++++++++++++++++ Da ituenix.de längst nicht mehr existiert. In diesem Sinne werde ich jetzt zumindest in diesem Beispiel dieses durch https://www.dvajda.de ersetzen. Zur Übung werde ich dann erst demnächst den Programm Quelltext neu schreiben aus dem Kopf. Ich bin erst mal zufrieden mit dem Ergebnis. Ich habe bisher ein einziges Mal den max232 eingesetzt dabei hat es einmal funktioniert. Ansonsten habe ich das bisher stk500 benutzt das ist ähnlich, dass man hier auch eine Verbindung zwischen PD null und PD eins sowie also was am. Atmega8 rxd und txd ist sowie sozusagen den zwei entsprechenden Pins, an dem sub d 9 Stecker mehr oder weniger herzustellen ist allerdings bleibt einem der Umstand, trotz allem mit der Schaltung, mit dem max232 erspart und ebenso ich hab als nur den Programm Quelltext geübt und ebenso sind natürlich die Nummerierung an dem Stecker selber von Anfang an richtig auf diesem Programmiergerät

https://mou.sr/4hqPrkf


root@work:/home/david# stty -F /dev/ttyS3 2400 cs8 raw && cat /dev/ttyS3

Da ituenix.de längst nicht mehr existiert. In diesem Sinne werde ich jetzt zumindest in diesem Beispiel dieses durch https://www.dvajda.de ersetzen. Zur Übung werde ich dann erst demnächst den Programm Quelltext neu schreiben aus dem Kopf. Ich bin erst mal zufrieden mit dem Ergebnis. Ich habe bisher ein einziges Mal den max232 eingesetzt dabei hat es einmal funktioniert. Ansonsten habe ich das bisher stk500 benutzt das ist ähnlich, dass man hier auch eine Verbindung zwischen PD null und PD eins sowie also was am. Atmega8 rxd und txd ist sowie sozusagen den zwei entsprechenden Pins, an dem sub d 9 Stecker mehr oder weniger herzustellen ist allerdings bleibt einem der Umstand, trotz allem mit der Schaltung, mit dem max232 erspart und ebenso ich hab als nur den Programm Quelltext geübt und ebenso sind natürlich die Nummerierung an dem Stecker selber von Anfang an richtig auf diesem Programmiergerät

9.) Errechne mit dem Abakus


31 + 100 + 78 + 43 + 27 + 93 + 83 + 73 + 32 + 60
david@work:~$ echo $((31 + 100 + 78 + 43))
252
david@work:~$
david@work:~$ echo $((31 + 100 + 78 + 43 + 27 + 93 + 83 + 73))
528
david@work:~$ echo $((31 + 100 + 78 + 43 + 27 + 93 + 83 + 73 + 32 + 60))
620
david@work:~$

10.) Errechne mit dem Abakus
101 + 3800 + 227 + 8620 + 1802 + 9572 + 1462 + 5212 + 8189 + 9883
david@work:~$ echo $((101 + 3800 + 227 + 8620 + 1802 + 9572))
24122
david@work:~$
david@work:~$ echo $((101 + 3800 + 227 + 8620 + 1802 + 9572 + 1462 + 5212 + 8189 + 9883))
48868
david@work:~$
Ja, am Ende diesen klitzekleiner reichen Fehler drin. An der vierten bedeutendsten Stelle steht eine neun. bei mir statt einer acht. Wir k"onnen gucken. Wo der Fehler entstanden ist. Ich vermute im letzten Schritt erst haben wir noch die Fotos
Ja, der Fehler ist im letzten Schritt entstanden im allerletzten
david@work:~$ echo $((101 + 3800 + 227 + 8620 + 1802 + 9572 + 1462 + 5212 + 8189))
38985
david@work:~$
Dann stellen wir das wie auf dem Foto wieder her auf dem vorletzten sozusagen und rechnen des letzte noch mal Ja ich weiß jetzt auch wie der Fehler entstanden ist. Ich hab ja sozusagen 9883 und dann rechne ich 10.000 und ich hab aber quasi mit 9983 gerechnet weil ich hab die 20 abgezogen und dann auf der letzten also in dem letzten Stelle da waren noch sozusagen drei übrig. Ich kann ja sozusagen wenn ich 9983 habe und in der letzten Stelle habe ich drei übrig. Dann kann ich ja 20 in der zweiten Stelle zurückfahren und bin Dann bei 9980 also minus also bei 10.000 und dann hab ich die drei unten noch rüber geschoben. Ich hab aber nicht berücksichtigt, dass ich 120 abziehen muss, weil ich 9883 habe und nicht 9983. Das war der Fehler



Unterabschnitte