Gut, hier tut grad das der Ausdruck irgendwie nicht bei diesen Dingen. Immer wenn alle Eingangs variablen aus sind, ist die ausgangsvariable auch aus. Das soll eigentlich nicht so und gucken wir uns das nachher an und was stimmt noch nicht ach ja irgendwas stimmt mit der Unterbrechung nicht, müssen wir angucken ach ja, die Beiträge zusammenfassen wäre ne gute Sache Beiträge zusammenfassen und mit dem Basic. Das muss ich mir erst mal angucken, wie die Sprache an sich aussieht. Was ist dazu zu bedenken gibt und ja dann halt das Zeug einfach weitermachen wie bisher auch. Was fehlt noch jetzt hier ach mit dem GAL vielleicht mal gucken oder so so
Gut kleine Debug Aufgabe...
Erstens: wenn alle aus sind sind alle aus, kann nicht sein definitiv ein Fehler
Zweitens: led vertauscht,
x2,x1,x0Hier ist wäre Vertauschung möglich...
jetzt weiter...
jetzt weiter...
gut, ich tue jetzt folgendes: ich gehe noch mal einkaeufe, das zeug wird heute in einem beitrag zusammen gefasst, daran arbeite ich.
erstens und zweitens: es gibt ja die programmiersprache BASIC, ich selber habe eine Art Compiler mehrfach geschrieben, viele kleine. Bakus Naur Form sind welche. so, viele kleine, aber groessere
ich hatte das buch von dijkstra ist der herr glaube ich, muss aber gucken, oder ein anderer. compilerbau oberon. an der fernuni hagen, compilerbau kurs
basic vom prinzip einfach. ich probiere einen fuer atmega8 und pc allgemein zu schreiben, indem falle, atmega8...
Jetzt einmal Dampfmaschine fahren lassen dann muss ich ja einmal aufräumen kann ich heute auch nicht mehr machen
Ich habe es allerdings genau gesehen und das hab ich auch schon vorher gesehen. Beim ersten bleibt die LED im Ausgang Schalt Netz würde man beim Schaltwerk sagen aus und es ist falsch. Also da muss ich noch mal gucken was die TTL Gatter betrifft
Der Timer tut, er tut gut toll und ja also ich mach kurz einen Film und zeige kurz es bietet sich jetzt der das externe Interrupt an also wo ich immer auf den Knopf drücken muss weil dann kann ich das ablesen wenn es als Film so schnell durchläuft. Da hab ich natürlich meine Schwierigkeiten auch wenn's relativ langsam geht die LED am Ausgang des Schaltnetzes zu kontrollieren.
Sprich, wenn ich meinen Knopf drücken muss, kann ich genau danach fotografieren
;; david vajda; m8 intervall timer / led slow .include "m8def.inc" .org 0x0000 rjmp RESET .org OVF1Addr rjmp OVF1Hndlr RESET: ldi r16, HIGH (RAMEND) out SPH, r16 ldi r16, LOW (RAMEND) out SPL, r16 ldi r16, 0xff out DDRB, r16 ldi r16, 0xff out PORTB, r16 ;; ldi r16, ;; out TCCR1B, r16 ;; ldi r16, ;; out TIMSK, r16 ;; so weit ich es. aber ich weiss nicht, ;; wie heissen, die flags, 1. zur aktivierung ;; des timers, 2. zum prescaler heisst, teiler ;; also beim wievielten mal\dots ;; die nachgucken sei main001: rjmp main001 OVF1Hndlr: inc r16 out PORTB, r16 reti
So, jetzt geht es weiter. Es kommt der IntervalTimer.
Gut, die Schaltung tut schon mal. Da ist aber eins und zwei glaub ich vertauscht also null und eins ist vertauscht. Muss noch mal gucken wo an den LED oder am Eingang einen Moment
Ist Oszilloskop tut, das ist das eine und die Schaltung mir ist grad jetzt nicht weiter danach. Ich muss auf die Straße raus ist jetzt zu viel geworden für mich und muss noch mal auf die Straße raus. Ich weiß nicht ich hab die Schaltung soweit aufgebaut muss ich nachher ausprobieren.
So, jetzt hab ich das Ding hier auch noch gebastelt wenn ich das hab ja also da fehlen jetzt die Anschlüsse einerseits vom nicht und andererseits in die nicht rein so und also in die 7404 wenn es geschehen ist, dann haben wir jetzt kurz eine rauchen und was noch für ein Zeug keine Ahnung. Ach so das mit dem Zeit Zeit Unterbrechung Zähler
So, hier ist das Bild richtig das blau-weiß das spielt so kein Rollen auf dem Brett selber. Das ist jetzt vertauscht. Jetzt hab ich das jetzt kommt im nächsten Schritt. Wie gesagt ich muss die Schaltung noch mit normalen Gattern aufbauen. Im nächsten Schritt kommt noch das mit dem Timer Intervall
Man sieht es blau-weiße Kabel war vertauscht. Ich mach die Aufnahme auf dem Oszilloskop noch mal.
Nachher ein Beitrag wie gesagt, raus hier mit dem GAL zählt das fantastisch
GAL16V8
Damit zählt fantastisch. Ich zeige Ihnen das auf dem Display von dem Oszilloskop und ich hab es auch ausprobiert mit dem langsamen, was schrittweise die LED nach oben zählt. Und ja, das geht auch sehr gut. Also mit dem GAL das ist die LED nach oben. Zählt ein Moment.
;; so jetzt mit oszi, gleich dran machen\dots fuer das erste ;; david vajda ;; 06/27/2026 ;; m8 count oszi count .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 main001: out PORTB, r16 ;; rcall waitloop001 dec r16 rjmp main001 waitloop001: push r16 push r17 push r18 ldi r16, 0x04 waitloop002: ldi r17, 0xff waitloop003: ldi r18, 0xff waitloop004: dec r18 brne waitloop004 dec r17 brne waitloop003 dec r16 brne waitloop002 pop r18 pop r17 pop r16 ret
;; das tut - aber die wait loop zu langsam ;; danach extern und ohne verzoegerung, aber das laesst sich mit timer 0 auch schnell mit interrupts machen ;; david vajda ;; 06/27/2026 ;; m8 count led by wait loop .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 main001: out PORTB, r16 rcall waitloop001 dec r16 rjmp main001 waitloop001: push r16 push r17 push r18 ldi r16, 0x0f waitloop002: ldi r17, 0xff waitloop003: ldi r18, 0xff waitloop004: dec r18 brne waitloop004 dec r17 brne waitloop003 dec r16 brne waitloop002 pop r18 pop r17 pop r16 ret
das ziel ist jetzt noch
;; es tut, der erste quelltext ;; david vajda ;; 06/27/2026 ;; m8 count led by ext int .include "m8def.inc" .org 0x000 rjmp RESET .org INT0addr rjmp INT0hndlr .org INT1addr rjmp INT1hndlr RESET: ldi r16, HIGH (RAMEND) out SPH, r16 ldi r16, LOW (RAMEND) out SPL, r16 ldi r16, 0xff out DDRB, r16 ldi r16, 0xff ldi r16, (1 << CS00) | (1 << CS01) out MCUCR, r16 ldi r16, (1 << INT0) | (1 << INT1) out GICR, r16 sei main001: rjmp main001 INT0hndlr: dec r16 out PORTB, r16 reti INT1hndlr: inc r16 out PORTB, r16 reti
;; david vajda ;; 06/27/2026 ;; m8 count led by ext int .include "m8def.inc" .org 0x000 rjmp RESET .org INT0addr rjmp INT0hndlr .org INT1addr rjmp INT1hndlr RESET: ldi r16, HIGH (RAMEND) out SPH, r16 ldi r16, LOW (RAMEND) out SPL, r16 ldi r16, 0xff out DDRB, r16 ldi r16, 0xff ldi r16, (1 << CS00) | (1 << CS01) out MCUCR, r16 ldi r16, (1 << INT0) | (1 << INT1) out GICR, r16 sei main001: rjmp main001 INT0hndlr: dec r16 out PORTB, r16 reti INT1hndlr: inc r16 out PORTB, r16 reti
;; david vajda ;; 06/27/2026 ;; m8 count led by wait loop .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 main001: out PORTB, r16 rcall waitloop001 dec r16 rjmp main001 waitloop001: push r16 push r17 push r18 ldi r16, 0x0f waitloop002: ldi r17, 0xff waitloop003: ldi r18, 0xff waitloop004: dec r18 brne waitloop004 dec r17 brne waitloop003 dec r16 brne waitloop002 pop r18 pop r17 pop r16 ret
Ach ja, und so sehr sie angepisst sind, dass ich jetzt hier ständig was sage, da sind sie und werden sich sonst wohin setzen ich mich auch dagegen können wir auch nix machen. Verstehe alles. Lassen wir soweit gut sein. Jetzt kommt als Nächstes trotzdem
Ja, bei mir heißt es lass mir gut sein bitte wir müssen das nicht alles besprechen wer oder was auch immer wir sind oder nicht sind auch darum können wir uns nicht drücken verstehe ich alles. Ich bin trotzdem froh über das Programm hier von Linux und auch über das batronix
Jedenfalls soweit und kommt noch das nächste Thema. Wie gesagt, ich bin froh bei den dividier Befehl. Ich wollte trotzdem zur ständigen Übungen das gehört ja bei mir dazu.
Also, wo ich den atmega8 immer jeden Tag programmiere kommt ja der Klassiker mit der Warteschleife, dann mit dem externen Interrupt und dann mit dem Zeit Intervall
Das kommt und: das ist halt das und das ist auch schön so. Und jedenfalls das mache ich dann auch gleich zur Übung weil dann kann ich das auch mit diesem Baustein sehr gut durchlaufen lassen. So nächstes Thema jetzt erst mal der Schaltplan und wenn ich den hab, dann geh ich noch mal was einkaufen dann kommt der Rest heute Abend.
Jetzt sehe ich stimmt die Schaltung doch
Und ich bin froh, weil es ist mein erster programmierter
GAL
In meinem Leben, von dem ich ausgehen kann, ist es richtig
Ich bin glücklich, dass ich da rein geguckt hab, dass ich jetzt auch sehe bei dem map oder wie soll ich sagen? Pin und so weiter
Ich habe galasm das ist sicher eine Abwandlung von Abel die ich zunächst seltsam fand, muss allerdings sagen, es stimmt wahrscheinlich nachdem ich zum Beispiel Beispiel gefunden hab eben nicht, dass keine Flip Flops möglich sind Sie sicher nicht. Der Fall von der Sache her, sah für mich auf den ersten Blick so aus. Es sieht alles ein bisschen anders aus ist sicher genauso hübsch. Ich werde auch probieren, sozusagen dieses jedec also Fuse ist selber zu machen, solange dieses galasm und auch was immer sie selber sind ich auch. Können wir uns sonst was einbilden und es vielleicht am Ende leider auch noch sein oder nicht leider wir können uns nicht von allem drum rum drücken das wissen wir da können wir auch trotzdem galasm beleidigen. Auch dahin da drum kommen wir nicht drum rum wahrscheinlich tut's ich bin froh, dass es damit geklappt hat. Jedenfalls der Baustein tut und es ist sicher auch trotzdem die nette Sprache, auch wenn wir uns noch was einbilden und es auch am Ende sind oder nicht, warum wir nicht drum rum drücken sie verstehen schon jedenfalls es tut jetzt hier in diesem Fall
So, jetzt muss ich noch mal den Baustein testen. Stimmt da irgendwas nicht?
so, jetzt probiere ich weil wohl eine zeile bei den gleichungen in der tabelle nicht funktioniert hat...muss ich noch mal gucken und die aufgabe soll vollstaendig sein, das heisst:
der atmega8 code, zaehlen, mit warteschleife, externen interrupt, zeitintervall muss her.
und wenn wir das haben: ach so der rest, mit samt diagramm
ieee 91-1984,
din 40900und so weiter und din 40700 ok. und dann alle beitraege zusammen.
Ich müsste noch mal die Gleichung analysieren, aber für heute ist mir die Lust vergangen. Danke schön. Ich bin froh, dass dieser GAL 16 V8 tut.
Wie gesagt, da muss ich das normale an der DNF weitermachen auch den Schaltplan aber den muss ich heute nicht mehr machen, mit der Hand und mit dem Computer und die Schaltung noch bauen
(C) David Vajda Sat Jun 27 11:46:55 2026 3 Network - TTL - Disjunktive Normalform x2 x1 x0 y 0 0 0 0 1 1 0 0 1 0 2 0 1 0 1 3 0 1 1 0 4 1 0 0 1 5 1 0 1 1 6 1 1 0 0 7 1 1 1 1 x2 x1 x0 y 0 0 0 0 1 2 0 1 0 1 4 1 0 0 1 5 1 0 1 1 7 1 1 1 1 x2 x1 x0 y Gruppe 0: 0 0 0 0 1 Gruppe 1: 2 0 1 0 1 4 1 0 0 1 Gruppe 2: 5 1 0 1 1 Gruppe 3: 7 1 1 1 1 x2 x1 x0 y 0:2 0 - 0 0:4 - 0 0 4:5 1 0 - 5:7 1 - 1 x2 x1 x0 y 0:4 - 0 0 0:2 0 - 0 5:7 1 - 1 4:5 1 0 - Primimplikantentafel: 0 2 4 5 7 0:4 x x 0:2 x x 5:7 x x 4:5 x x Primimplikantentafel, welcher muss auf jeden fall bleiben? 0 2 4 5 7 0:4 x x 0:2 x x 5:7 x x p 4:5 x x
Gibt es irgendwelche gruende diese oder jene Gleichung Zu streichen? Etwa in Prozenten? Eine Entdeckung? Immerhin:
<CR><LF>oder
<LF><CR>eigentlich wuerde doch Beides? Ich dachte: wann überlebt die Schreibmaschine, wg. Wagen am Rand, mehr oder ...Der/die/das Schreiber vielleicht - wo ist mehr klecks? Klecks im nächsten, wird ueberschrieben, oder nicht frische Tinte? Was auch immer...wir koennen ja jetzt fragen an die Prozente die Wahrscheinlichkeitsrechnung stellen?
Was ist denn jetzt klüger, diese variable dieses UND/ODER
Gatter bevorzugt oder dieses? Vielleicht weiss es ja jemand?
Wie beim Schach? Oder wir wissen es einfach nicht!
Wir wissen es einfach nicht, weil jemand sagen wuerde, oh Vajda!
Wie beim Schach!
Weil: ich sage mal so: woher wissen wir? Dass es nicht teil
Unserer aufgäbe ist? Nicht teil unserer aufgäbe ist, Einteilung
Fast wie Prozente, blos: ich glaube wir muessen das mal einsehen,
Dass auch die uni bis ins 19. jhdt. Ziemlich langsam war. zunaechst.
Vielleicht gewöhnen wir uns daran...
Fanatisch und perfektionistisch
Fanatismus und Perfektionismus blos wir koennen ja mit dem leben.
Aber es ist ein wenig frisch. Und wir muessen erst mal 2000 jähre damit
Leben ohne das Gedudel anderer menschen und sei es auf der Strasse.
Dann machen wir es wenn schon ordentlich selbst, ohne Anspruch,
Andere zu überzeugen. Weil: schon das Gedudel stimuliert sie. Deswegen
Wahrscheinlich sagen manche leute ist Strassenmusik schlecht, sie genügt
Keinem Anspruch.
Warum? Weil sie schoen ist, wie die Musik im Radio. Noch schöner, wenn gut
Schleicht sich da wieder was ein? Ja, leider.
Warum? Weil Musik schlecht klingen muss, auch wenn man die dauernd übt.
Dann ist gut geübte schlechte Musik, wenn selbst, besser. Warum?
Warum ganz einfach: sie kennen ja diese komischen Tänzerinnen im 19. jhdt.
Was da auf der Strasse jetzt auf ein mal so schon dudelt gerade, das ist teil
Der Sache. Ein fortschritt zum Radio von gerade eben?
Nein, leider nicht! Wenn man wo anders hin muss...sie wissen
Und ich sage: wenn sie weiter schöne Musik spielen, dann wird die welt leider
Bald nicht mehr schoen sein, gemeint sind nicht, unschöne Unterredungen im
Unschönen Büro. Dass sie noch Musik spielen koennen verdanken sie lange gespielter
Unschöner Musik. Das ist das problem. Sie muessen sich alle erst mal sehr lange
Gewöhnen und das ist glaube ich das ziel in der Wissenschaft der Zukunft, die jetzt
Anfangen sollte und sehr lange so gehen sollte.
0 2 4 5 7 0:4 x x 0:2 x x 5:7 x x p x2 x1 x0 y 0:4 - 0 0 0:2 0 - 0 5:7 1 - 1 y <= (not x1 and not x0) or (not x2 and not x0) or (x2 and x0); -- vhdl\dots -- (C) David Vajda -- Sat Jun 27 11:46:55 2026 -- 3 Network - TTL - Disjunktive Normalform library ieee; use ieee.std_logic_1164.all; entity quine06272026 is port ( x2, x1, x0: in std_logic; y: out std_logic ); end; architecture behaviour of quine06272026 is begin y <= (not x1 and not x0) or (not x2 and not x0) or (x2 and x0); end; library ieee; use ieee.std_logic_1164.all; entity quine06272026debug is port ( y: out std_logic ); end; architecture behaviour of quine06272026debug is component quine06272026 port ( x2, x1, x0: in std_logic; y: out std_logic ); end component; signal x2, x1, x0: std_logic begin q: quine06272026 PORT MAP (x2=>x2, x1=>x1, x0=>x0, y=>y); x0 <= '0' after 0 ns, '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1' after 70 ns, '0' after 80 ns; x1 <= '0' after 0 ns, '0' after 10 ns, '1' after 20 ns, '1' after 30 ns, '0' after 40 ns, '0' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns; x2 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '1' after 40 ns, '1' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns; end;
(C) David Vajda Sat Jun 27 11:46:55 2026 3 Network - TTL - Disjunktive Normalform x2 x1 x0 y 0 0 0 0 1 1 0 0 1 0 2 0 1 0 1 3 0 1 1 0 4 1 0 0 1 5 1 0 1 1 6 1 1 0 0 7 1 1 1 1
ergibt
(korrekt)
und
(korrekt)
...
// david vajda
// 06/26/2026
// divisionsoperation like network one operation
#include <stdio.h>
#define DIVIDEND 134
#define DIVISOR 17
int main (void) {
int b [8];
int a [8];
int q = 0;
int r;
int p [8]; // (debug modus fuer q)
int i;
for (i = 7; i >= 0; i--)
b [i] = DIVIDEND;
for (i = 7; i >= 0; i--)
a [i] = DIVISOR << i;
/*
* jetzt haben wir:
* b7,
* b6,
* b5,
* ...
* b0
* mit fuehrenden nullen
* dann kommt als naechstes
* a7,
* a6,
* ...
* a0
*
* die subtrahieren wir alle einzeln voneinander und gucken
* uns das ergebnis in einer art 1. debug modus an...
*/
for (i = 7; i >= 0; i--)
p [i] = b [i] - a [i];
for (i = 7; i >= 0; i--)
printf ("%2i.) %x = %x - %x; %i = %i - %i, p[%i] = b[%i] - a[%i]\n", i, b[i], a[i], p [i], b[i], a[i], p [i], i, i, i);
for (i = 7; i >= 1; i--) {
if (b [i] - a[i] >= 0) {
b [i-1] = b [i] - a[i];
q = q + (1 << i);
}
else
b [i-1] = b [i];
printf ("%i %i %i\n", b[i], b[i-1], q);
}
if (b [0] - a[0] >= 0) {
q = q + (1 << 0);
r = b [0] - a[0];
}
else
r = b [0];
printf ("%i %i, rest: %i\n", b[0], q, r);
return 0;
}
for (i = 7; i >= 1; i--) {
if (b [i] - a[i] >= 0) {
b [i-1] = b [i] - a[i];
q = q + (1 << i);
}
else
b [i-1] = b [i];
printf ("%i %i %i\n", b[i], b[i-1], q);
}
if (b [0] - a[0] >= 0)
q = q + (1 << 0);
printf ("%i %i\n", b[0], q);
// david vajda
// 06/26/2026
// divisionsoperation like network one operation
#include <stdio.h>
#define DIVIDEND 134
#define DIVISOR 17
int main (void) {
int b [8];
int a [8];
int q;
int p [8]; // (debug modus fuer q)
int i;
for (i = 7; i >= 0; i--)
b [i] = DIVIDEND;
for (i = 7; i >= 0; i--)
a [i] = DIVISOR << i;
/*
* jetzt haben wir:
* b7,
* b6,
* b5,
* ...
* b0
* mit fuehrenden nullen
* dann kommt als naechstes
* a7,
* a6,
* ...
* a0
*
* die subtrahieren wir alle einzeln voneinander und gucken
* uns das ergebnis in einer art 1. debug modus an...
*/
for (i = 7; i >= 0; i--)
p [i] = b [i] - a [i];
for (i = 7; i >= 0; i--)
printf ("%2i.) %x - %x = %x (%i), p[%i], b[%i] - a[%i]\n", i, b[i], a[i], p [i], i, i, i);
return 0;
}
david vajda