root@work:/home/david# ifconfig lo:2 127.0.0.2 netmask 255.0.0.0 up |
nun folgendes: parallel oder seriell ist vollkommen egal
dd if=/dev/xyz of=/dev/abc |
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 |
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 |
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 |
also warum nicht festplatte
/dev/sda1 oder serielle schnittstelle /dev/ttyS0 als netzwerkschnittstelle? |
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 |
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 |
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# |
gut und jetzt:
socat -d -d tcp-l:60001,reuseaddr pty,link=/tmp/ttyV0,b9600,raw,echo=0,mode=770 |
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 |
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' |
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' |
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/ |
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 |
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 |
0:1 0 0 - 6:7 1 1 - 1:5 - 0 1 0:1 0 0 - 6 1 1 0 1:5 - 0 1 |
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 |
11 t1in 12 r1out 14 t1out 13 r1in |
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
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:~$ |