Zähler vorwärts unendlich

Zuviel Werbung?
-> Hier kostenlos registrieren
ist aber nicht bis unendlich :ROFLMAO:
geht nur bis 2Milliarden irgendwas. Aber wenn man dann den Überlauf abfängt kann man noch etwas mehr rausholen. Dann gehts bis 2Milliarden^2

*ROFL*
 
Zuviel Werbung?
-> Hier kostenlos registrieren
nicht ganz....

zum einen keine Flankenauswertung und zum anderen solltest auch ein Doppelwort laden, wenn du es addieren willst

U E 100.0 // Dein Flankeneineingang
FP M104.0 // Ein Flankenmerker
SPBN NADD // keine Flanke = nicht addieren
L MD100 // Doppelwort Laden
L 1
+D
T MD 100
MADD: NOP 0

So wird das funzen

greetz, Black
 
nicht ganz....

zum einen keine Flankenauswertung und zum anderen solltest auch ein Doppelwort laden, wenn du es addieren willst

U E 100.0 // Dein Flankeneineingang
FP M104.0 // Ein Flankenmerker
SPBN NADD // keine Flanke = nicht addieren
L MD100 // Doppelwort Laden
L 1
+D
T MD 100
MADD: NOP 0

So wird das funzen

greetz, Black

[klugscheiss] nicht ganz siehe rot :ROFLMAO: es sei denn, dein Prog ist noch grösser [/klugscheiss]
 
nicht ganz....

zum einen keine Flankenauswertung und zum anderen solltest auch ein Doppelwort laden, wenn du es addieren willst

U E 100.0 // Dein Flankeneineingang
FP M104.0 // Ein Flankenmerker
SPBN NADD // keine Flanke = nicht addieren
L MD100 // Doppelwort Laden
L 1
+D
T MD 100
MADD: NOP 0

So wird das funzen

greetz, Black

Danke!! ich verstehe fast alles, außer den Flankenmerker.Warum, oder wofür ist der Flankenmerker???
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Flankenmerker deshalb weil:

wenn keine FP Auswertung, wird die Routine immer dann aufaddieren, wenn der Eingang logisch 1 ist. ist aber nicht gewollt, du willst ja bei einem Wechsel von 0 auf 1 am Eingang addieren. Drum musst dir den letzten Zustand des Einganges merken.

Dies macht FP durch Angabe des Flankenmerkers.
Ist E100.0 True und der letztes gespeicherte Zustand im Flankenmerker False ist das VKE True, ansonsten immer False.

Black

Hatte noch einen Tippfehler: MADD: NOP 0 ersetzen duch NADD: NOP 0
 
Flankenmerker deshalb weil:

wenn keine FP Auswertung, wird die Routine immer dann aufaddieren, wenn der Eingang logisch 1 ist. ist aber nicht gewollt, du willst ja bei einem Wechsel von 0 auf 1 am Eingang addieren. Drum musst dir den letzten Zustand des Einganges merken.

Dies macht FP durch Angabe des Flankenmerkers.
Ist E100.0 True und der letztes gespeicherte Zustand im Flankenmerker False ist das VKE True, ansonsten immer False.

Black

Hatte noch einen Tippfehler: MADD: NOP 0 ersetzen duch NADD: NOP 0

Warum die adresse FP M104.0?¿?
 
Weil das nach MD100 das erste freie Bit ist. Natürlich kannst du für einen Flankenmerker auch jedes andere freie Bit benutzen.
 
Wie konnte ich den Zähler rücksetzen??

...
U(
L L#80
L "MD100"
==D
)
SPBNB _001
L 0
T "MD100"
_001: NOP 0

Für RESET (Zähler nullen):
Code:
UN reset
SPB _002
L [COLOR=Red]L#[/COLOR]0
T MD100
_002: NOP 0
Dies ist eine Zählbegrenzung mit Neuanfang:
Code:
L MD100
L L#80
<=D   // bei 80 wird noch gesprungen
SPB _001
L L#1    // mit dem 81.IMP wird 1 eingetragen
T MD100
_001: NOP 0
Falls du sicher unter 32767 bleibst, kann natürlich alles mit MWs erfolgen und ohne L#.

Gruß Roland
 
Zuletzt bearbeitet:
Zurück
Oben