Hallo,
Wer hat Interesse mir mir zusammen EIN EIGENES ASM-Programm wie nachstehend umrissen zu entwickeln? Würde mich über Zuspruch freuen und gerne andere Ideen zur Programmgestaltung (Pheripherie) kennenlernen.
Im Moment habe ich den PIC16F1827 vor mir und bin gerade dabei alte Kenntnisse über die Komparatoren und das TIMER1 MODULE mit GATE CONTROL (Datenblatt S.177) wieder aufzufrischen. Ich arbeite dabei mit dem MPASM und NICHT mit C. Vermutlich sind die genannten Module auch in einigen anderen PIC's vorhanden.
Timer1 Gate Modul:
Ein von Flanken umfasstes Ereignis -im einfachsten Fall die Pulsfolge eines AMV - öffnet und schließt mit jedem Puls ein Zähltor in dessen zeitlchem Verlauf der Timer 1 mit einer externen, bzw.einer internen Frequenz (fosc oder fosc/4) hochgezählt wird.
Als Impuls/Frequenzgenerator um das Timer1 Gate zu schalten, möche ich den internen Komparator als AMV oder auch einen exernen Generator verwenden. Der integrierte Komparator spart jedenfalls Kabelsalat.
Es geht dabei um
a) die Initialisierung des Komparators und des TIMER1 GATE MODULS
b) Die Anwendung der verschiedenen Modi wie Puls/Pausenzeit, Periodendauer (Frequenz)
d) wenn nötig per Software entprellte Drucktastern
e) Ausgabe der Messwerte im LCD
Also, lasst mal was hören!
Ich mache das eigentlich zweckfrei, aus Spaß am programmieren in ASM.
mfG Ottmar
Also Intresse ist definitiv vorhanden :)
Leider ist meine Hütte noch nicht soweit das ich richtig aktiv da was machen kann.
Auch kenne ich dieses Gate Modul überhaupt nicht. Klingt aber sehr spannend und könnte für mich für spätere
Projekte durch aus Interessant sein.
Hast du da bereits Ansätze gestartet?
Gruß
Cobra
Hallo Cobra,
ja natürlich habe ich mich schon damit beschäftigt und auch schon die ersten Schritte unternommen, mich auch eingelesen. Auch wenn man das TIMER1-GATE-MODUL (T1GM) versteht ist immer noch genug zu tun um dieses auch vernünftig handhaben zu können (Bedienung, Ausgabe (etwas Mathematik zur Division bei Frequenz, DutyCylce etc. Dafür habe ich aber schon fertige Unterprogramme).
Der Komparator 2 arbeitet schon und die Ausgabemaske für das LCD habe ich auch mal erstellt, die gilt es nun mit Ergebnissen zu füllen. Wir müßten - falls Du mitmachst - uns absprechen, was wir da alles mit reinpacken wollen.
Wäre schön wenn Du dabei sein könntest.
mfG Ottmar
Moin Moin,
Puh du warst ja schon richtig fleißig.
Da werde ich mir mal das ganze anschauen. Wenn ich dir (noch) Helfen kann würde
ich dies gerne tun.
Bin aber mehr als nur eingerostet :P
Kannst du dein Projekt mal bereit stellen? Würde mir das vorhandene ebenfalls mir schonmal anchauen wollen.
Hi Cobra, danke für die rasche Antwort!
Eine Hilfe im üblichen Sinne war nicht mein Ziel, vielmehr Anregungen und Ideen zur programmtechnischen Auswertung des Timer1 Gate Moduls (T1GM) zu erreichen. Dabei dachte ich mir, dass ein anderer Kopf zu anderen Lösungen wie ich kommen kann und es für die Beteiligten gleichermaßen zum Vorteil gereicht, bzw. dies den eigenen Horizont erweitert.De Initialisierun des Komparators C2 erledige ich z.B wie folgt. Wie würde jemand anders das machen?
;--C2_PORT(PORTA) ;Komparator inputs und COUT DS.120ff
BANKSEL C2_PORT ;bank2 Pinbelegung DS.11-12
clrf C2_PORT
BANKSEL C2_LAT
clrf C2_LAT
BANKSEL C2_TRIS
clrf C2_TRIS
bcf C2_TRIS,C2OUTPT ;RA4 Comparator Output
bsf C2_TRIS,C2INNEG ;RA3/C12IN3- C2 NEGATIVE input
bsf C2_TRIS,C2INPOS ;RA2/C12IN+ C2 POSITIVE input.
BANKSEL C2_ANSEL
clrf C2_ANSEL
bsf C2_ANSEL,C2INNEG ;RA3 C2 NEGATIVE input
bsf C2_ANSEL,C2INPOS ;RA2 C2 POSITIVE input.
;
--COMPARATOR MODULE DS.163ff
BANKSEL CM2CON0 ;bank2 PORTA-PINS vgl. S.12 DS.170
movlw b'10100000' ;C2 enabled, C2OUT not inverted
movwf CM2CON0 ;C2OUT -> RA4, Low Speed
bsf CM2CON0,C2HYS ;Hysteresis on (ca.65mV)
bsf CM2CON0,C2SYNC ;sync outp. wiht HL edge TMR1 clock.
Es gibt einige Möglichkeiten mit dem T1GM umzugehen:
1. Dauer des postiven Pulses
2. Dauer des negativen Pulses
3. Periodendauer
4. Frequenz -> 1/Periodendauer
5. Duty Cycle -> Dauer des H-Pulses /Periodendauer
6. Clock-Source des Timer1 fosc oder fos/4 oder extern
oder unter Verwendung des Prescalers 1:1-1:8
8. Wie kann das SR-Latch mit einbezogen werden?
;--SINGLE PULS LOW ;3. Gate Mode Single Pulse HIGH
;--T1GCON Gate CONTROL set as SINGLE H-PULS DS.186
;b7= 1 TMR1GE Timer1 gate function ENABLED
;b6= 0 T1GPOL Timer1 gate HIGH LOW-ACTIVE
;b5= 0 T1GTM Timer1 Gate Toggle mode disabled
;b4= 1 T1GSPM Timer1 gate Single-Pulse mode is ENABLED
;b3= 0 T1GGO/DONE 1/0 ready/finished
;b2= 0 T1GVAL: Timer1 Gate Current State bit Flag
;b1-0=00 T1GSS Timer1 Gate Source TIMER1 GATE PIN (RB0)
movlw b'10110000' ;b5=0 single pulse
movwf T1GCON ;b5=0 Toglemode disabled für single pulse
bsf T1GCON,T1GSS1 ;Timer1 Gate Source is (SYNCC2OUT
bsf T1GCON,T1GSS0 ;siehe auch T1CON
movlw b'10010000'
movwf TIGCON
Das sind so die Features im T1GFM welche mir bereits im Vorfeld, beim Studium des Datenblattes aufgefallen sind.
Den Programmaufbau habe ich mal so ins Auge gefasst:
- Prozessor, Variable, Labels, Reset/Interrupt-Vector
- Initialisierung der SFR (Ports, Timer1, T1GM usw).
- LCD-Initialisierung (Frage: Wie machst Du das?)
- Hauptprogramm
- Ablaufsteuerung (Tastenabfrage, T1GM-Modi, LCD-Ausgabe
- Unterprogramme (H/L-Puls/Periode u.a.
- LCD-Ausgabe
- binäre Mathematik
- ISR Tastenentprellung
- ...und... und...?
mfG Ottmar
Moin,
versuche eig. einmal am Tag hier zu schauen ob sich was gerregt hat :P
Also zum Thema LCD: Ich habe mal von Sprut mir das genommen und ehrlich gesagt auch nie weiter damit befasst. Habe
immer den 4 Wire Mode genutzt, so initialisiert wie es Sprut gemacht hat und das wars. :(
Ich Träume zwar davon mir mal ein Grafik Display zu ordern und dieses über I2C oder SPI anzusteuern,
da wollte ich ein Pic als 'Grafikkarte' nutzen sodas ein andere Pic nur ASCII zeichen senden müsste und die Position/Größe und der Pic am Display würde die Pixel berechnen und zum Display schicken. Aber dies ist noch sehr weit in der Zukunft gesehen. (Eventuell auch ein nettes Projekt was man im Forum diskutieren kann)
eine Anmerkung zu dein bereitgestellten Code:
du lädst eine Konstante um das Modul einzustellen, und hinterher setzt du nochmal einzelne Bits. Ich würde entweder alles in der Konstante packen
oder alles einzelt setzen ( Dies würde ich bevorzugen da ich finde es ist lesbarer/verständlicher wenn man eine Zeile für jedes Config bit hat und man ein Kommentar hat was da passieren soll).
also Statt:
movlw b'10110000' ;b5=0 single pulse
würde ich so schreiben:
bsf T1GCON,TMR1GE ;Timer Gate Funktion einschalten
bcf T1GCON,T1GPOL ;Gate High-Low Aktive
bcf T1GCON,T1GTM ;Toggle mode aus
bsf T1GCON,T1GSPM ;Single Pule mode ein
bcf T1GCON,T1GGO ;fertig meldung ablöschen
bcf T1GCON,T1GVAL ;Status ablöschen
bsf T1GCON,T1GSS0 ;siehe auch T1CON
bsf T1GCON,T1GSS1 ;Timer1 Gate Source is (SYNCC2OUT
ausnahme wäre nur wenn aus Speicherplatzgründen man nicht so viele Befehle nutzen will/kann.
Dann würde ich beim Kommentar aber jedes Bit beschreiben.
Hi,
Wegen dem Speicherplatz braucht man sich bei diesem PIC noch keine Gedanken zu machenderzeit:
Program Memory Words Used: 243
Program Memory Words Free: 3383
Wenn ich bei mir noch noch nicht geläufigen Modulen Ports initialisiere, ziehe ich es vor, zunächst mal so wie bei dem C2-Port-Beispiel zu initialisieren, gibt mehr Platz für Kommentare und m.E. eine besere Übersicht.
Mein Assemblerwissen gründet sich ebenfalls auf die Webseite www.sprut.de. Allerdings habe ich spruts LCD-Initialisierung ergänzt, so dass ich inzwischen meist nur noch mein 2Wire-interface verwende. Auch habe ich Anpassungen an andere, nicht mit dem HD44780-Standard kompatible LCDs vorgenommen. Na ja, hab' beim letzten Beitrag die Codeschnitzel einfach so aus meiner Versuchs-ASM rauskopiert,die wohl schon etwas zerfledert war und wieder sauber in Ordnung gebracht werden musste. Hab' eben schon reichlich darin rumgespielt. Davon kommt es auch, dass das Modul im letzen Beitrag wiederholt mit anderen Werten initialisiert dargestellt worden ist.
Jetzt sieh das so aus, habe auch schon eine erste Ausgabe im LCD:
main:
bsf INTCON,GIE ;interrupt EIN
movlw b'00000000' ;b7-6=00/01 Tmr1 clock 1/4MHz DS.185
movwf T1CON ;b0=0 STOP
;
movlw LINE2+.17 ;Ausgabeadress ins DDRAM
CALL OutDDRAM_Addr
movlw "1" ;1 MHz
CALL OutLcd_Data ;TMR1 input Frequenz ausgeben
main_loop:
CALL Key_Fosc ;Tastenabfrage,Ausgabe fosc 1 oder 4 MHz
; ;T1CON,TMR1CS1:0 einstellen.
movlw b'11010000' ;b4=0 single pulse, Gate aktiv HIGH
movwf T1GCON ;b5=0 Toglemode disabled für single pulse
CALL TMR1_Gate
copy tmpTMR1H,H_Puls1 ;verwendet für Duty Cycle
copy tmpTMR1L,H_Puls0
movlw LINE1+.7 ;Ausgabe im LCD
movwf T1G_Addr
CALL Out_TMR1GM ;fos->fosc/4D zu Dezima, LCD-Ausgabe
;
movlw .10 ;1s waren bis zur nächsten Messung
CALL Delay100ms
goto main_loop:
Diese zittert in der letzten Stelle (us), liegt wohl am Aufbau und am simplen C2-Oszillator
TMR1 clock ist fosc/4, Interner Oszillator fosc 4MHz
Gate-Takt ist fout des als AMV beschalteter C2 ( jedoch C1=100nF).
Ich lege mal dazu Bilder bei und vielleicht interessiert auch das 2-Wire-Interface.
mfG Ottmar
Ja das 2 wire für das lcd ist natürlich sehr schick bei so kleinen pics. Wobei es dann etwas mehr Code sein dürfte.
Wenn ich das richtig verstehe misst dein pic 2750us und der oszi 2753us.
Hört sich für mich erstmal nach ein brauchbaren Ergebnis an.
Hi
Das kleine DSO138 von JYETech (Bausatz damals ca. 25€) mißt bis weniger als 100kHz recht gut, hat unterhalb dieses Bereichs keine bemerkenswerten Abweichungen zu meinem Siglent. Das letzte Digit sollte man wohl bei meinem Steckbrettaufbau und dem RC-Oszillator auch nicht sonderlich bewerten.
Die 2-Wire LCD-Init-Datei ist nicht bemerkenswert größer als eine für 4/8-Digit. Zumal bei der LCD-Ausgabe Zeit kaum eine Rolle spielt. Kann man doch wie beim 16F1827 bis zu 32MHz beim internen Takt gehen.
Der Unterschied zum 4Bit-Interface besteht nur darin, daß die Bits für jede Übertragung eines Byte 6x durch das Schieberegister geschoben und dann von diesem und nicht von der MCU, paralle, alsl 4Bit LCD-Data + 2Bit (RS,Enable), ins LCD übertragen werden.
Dazu kann das LCD an 2 beliebige, gerade unbenutzte Pins für Data und CLK angeschlossen werden. Das gibt Freiheit in der Nutzung der Portpins, überhaupt wenn z.B. beim TIMER1 nur RB6 als externer Zähleingang (T1CKI) vorhanden ist.
Eigentlich hatte ich ja gehofft, dass sich jemand die gleiche Aufgabe stellt und sich aktiv und praktisch mit dem T1GM beschäftigt, Na ja, warten wir mal ab.
mfG Ottmar
Tut mir leid, für Praktisches beschäftigen mangelt es grade an einer gescheiten Umgebung. :(
Hallo Jungs!
Ihr merkt schon daran, dass ich etliche Tage hier nicht reingeschaut hatte, dass bei mir Land unter ist und das ist auch sofort meine Reaktion auf das Angebot einer Beteiligung.
Leider! :'(
Das Land steht tief unter Wasser. Erstmal sowieso: es ist Sommerzeit und mein altes, geerbtes Haus versinkt im Sanierungs-Rückstau, da muss es weiter gehen. Dann steht der Sommerurlaub vor der Tür, will sagen, mit dem Auto nach Italien. Aber das Auto ist - nicht ganz so wie ich - alt und hat sich aktuell eine Altersschwäche zugelegt: die Luftfederung will nur teilweise federn, weil sie hinten irgendwo ein Löchlein hat. Wo ist umbekannt. Weil das in der orig Audi-Werkstatt zu Rep-Preisen führen kann, welche den Zeitwert des Wagens übersteigen, muss ich da ran. Tut mir sehr leid, aber ich muss präferieren.
Einziger Beitrag wird wohl sein, eine Anregung für einen sinngebenden Einsatz zu bieten. In meinem Dicken - was mein Auto ist - sitzt leider keine orig verbaute Öltemperatur-Anzeige. Eine solche hatte ich vor Jahren selbst erstellt - is klar: mit PIC drin - und die funktioniert auch immer noch gut. Aber für deren Betrieb ist ein spezieller Öl-Temperatur-Sensor in der Ölablassschraube notwendig. Wie gesagt: alles da, alles funktioniert. Aber theoretisch möglich und technisch eleganter wäre es, das Signal eines orig verbauten Doppelsensors auszulesen und für die Anzeige der Öltemp zu nutzen. Dieser Orig-D-Sensor misst gleichzeitig die Temp und die Pegelhöhe des Motoröls und gibt die beiden Ergebnisse zusammengemischt in einem seriellen Signal aus. Das wird dann natürlich später in einem Steuergerät zerlegt und verwertet, nur nicht angezeigt.
Der Sensor ist von Hella, den habe ich auch als Gebraucht-Gerät in meinem Arbeits-Keller und es gibt auch ein orig Bild der Signal-Zusammensetzung. Die Länge der 2 Haupt-Impulse stellt die Größe der Temp oder der Pegelhöhe dar. Siehe Bild.
Das wäre eine Anwendung für Komparatoren und Timer.
Grüße, picass
hella-signal.jpg
Mein Projekt "TMR1-Gate Modul (T1GM)" ist us meiner Sicht fertig und ich fasse mal zusammen:
Mit dem T1GM kann man
a) die Dauer zwischen zwei Flanken-Ereignissen messen
b) Ereignisse in einem bestimmten Zeitbereich zählen.
Als Timer1-Taktquelle und/oder Flankenereignisse können sowohl interne Ereignisse,als auch von außen zugeführte Ereignisse verwendet werden.
Die Messgenauigkeit ist sogar mit meinem bescheidenen Steckbrettaufbau und der Verwendung des internen Oszillators (4MHz) recht gut. Kommt es auf den letzten Zählimpuls an, benötigt man quarzstabilisierte Impulsfolgen für den TIMER1 und/oder das Gate.
Mit dem 16bit-Timer1 und der von mir gewählten Impuls-/Flankenquellle, sind Pulsweiten HIGH oder LOW, sowie Periodendauer bis max 2^16us recht genau messbar. Der Timer verfügt über einen internen Vorteiler bis 16:1 und unter Verwendung des TMR1-Überlaufflag kann eine fast beliebige Erweiterung der Bitbreite /des Zählbereiches vorgenommen werden.
Bedenkt man, daß nicht nur der Arbeitstakt (fosc/4)sondern auch der Oszillatortakt (fosc) für die Zählimpulse des TIMER1 verwendet werden kann und daß der PIC16F1827 bis fosc 32MHz verwendbar ist, eröffnen sich sehr kurze Zeitspannen für Messungen.
Die Initialisierung des T1GM für Pulsdauer und Periode ist einfach, wie nachstehender Beispielcode zeigt.
Hauptprogramm
main:
CALL TM1G_Pulse_HIGH ;22382wc (22.382ms) TMR1G-Routinen
CALL TM1G_Pulse_LOW
CALL TM1G_Periode
CALL TM1G_Frequenz
CALL TM1G_DutyCycle
;
btfss KeyPress,KEY1 ;wurde Taste gedrückt?
CALL HoldCurrentState ;Ja Programm anhalten
GOTO main
Initialisierung TMR1-Gate-Modul
TM1G_Pulse_HIGH: ;Debug 1739ms=0x06CB
movlw b'00000000' ;clock fosc/4, Presc.1:1,TMR1 OFF
movwf T1CON
movlw b'11010000' ;TMR1G enabled,activ HIGH,sgl.puls mode,
movwf T1GCON ;TMR1 Gate source TMR1 input pin RB0
CALL TMR1_Gate
TM1G_Periode: ;Debug 8251us=0x203B
movlw b'00000000' ;clock fosc/4, Presc.1:1,TMR1 OFF
movwf T1CON
;
movlw b'10110000' ;enabled,activ LOW,sgl.puls mode,
movwf T1GCON ;TMR1 Gate source TMR1 input pin RB0
CALL TMR1_Gate
TMR1_Gate:
clrf TMR1H ;vlear TIMER 1
clrf TMR1L
bsf T1CON,TMR1ON ;b0=1 Start TMR1
bsf T1GCON,T1GGO ;b3=1 Gate startbereit wartet auf Flanke
btfsc T1GCON,T1GGO ;Gate geschlossen? T1GGO=0?
GOTO $-1
copy TMR1H,tmpTMR1H ;TMR1:H in Arbeitsvariable kopieren
copy TMR1L,tmpTMR1L
RETURN
Interne Komparatoren - Verwendung von C2 Als astabiler Multivibrator
Die Komparatoren C1,C2 lassen sich unabhänging betreiben und können rasch programmiert werden. Die Impulse meines mit dem C2 aufgebauten AMV haben eine Flankensteilheit (1-90%) von ca. 68ns.
Mt 2 Widerständen und einem Kondensator lassen sich, wie die unten stehende Tabelle zeigt, variable Frequenzen erzeugen.
Ebenso einfach ist die Initialisierung des Komparators C2:
BANKSEL TRISA ;bank1
clrf TRISA
bcf TRISA,RA4 ;(03) Comparator2 C2OUT
bsf TRISA,RA3 ;(02) " C2IN-
bsf TRISA,RA2 ;(03) " C2IN+
BANKSEL ANSELA ;bank3
clrf ANSELA ;RB7:0 digital IO
bsf ANSELA,RA3 ;(02) Comp.2 analog C2IN-
bsf ANSELA,RA2 ;(03) " " " C2IN+
;--Komparator C2
BANKSEL CM2CON0 ;bank2 S.162ff, 170
movlw b'10100000' ;vgl. MACROS.INC
movwf CM2CON0
bsf CM2CON0,C2HYS ;Hysterese 65mV
;
movlw b'00000011' ;11 = C2VN connects to C12IN3- pin RA3
movwf CM2CON1
Die Bauteile in der von mir am 26.6. mitgeeiltenSchaltung können weitgehend veränert werden und erlauben eine vielfältige Variation der Pulsbreiten bzw. der Periode.
Allgemeines zum C2-Komparatormodul
Die Komparatoren C1,C2 lassen sich unabhänging betreiben und können rasch programmiert werden. Die Impulse meines mit dem C2 aufgebauten AMV haben eine Flankensteilheit (1-90%) von ca. 68ns.
Nachstehend eine Übersicht zu den Ergebnissen bei unterschiedlicher Bemessung von C1 (Schaltung aus meinem Beitrag vom 26.06.2024).
C1 2,2uF 680nF 100nF 22nF 1nF Cx*
fmin (Hz)ca. 15 34 377 675 15800 ?
fmax (Hz)ca. 18 60 418 1180 27700 460kHz
Cx* C1 ist die parasitäre Kapazität zwischen benachbarten
Steckbrettkontakten.
mfG Ottmar
Hallo piicass
habe erst jetz Deinen Beirag richtig gelesen. Das von mir beschriebene TIGM köönte doch hilfreich sein:
Die Startsequenz aussortieren, dann die beiden Pulse als Gate verwenden und die
Zählimpulse während der Gatephase ins Verhältnis zu Ölstand und Öltemperatur setzen....?
TIMER1-Zähltakt kann ja mit dessen Vorteiler an die Gate-Zeiten angepasst werden.
mfG Ottmar
@picass Zitat von: picass in 30.06.2024, 10:42:35 CESTDie Länge der 2 Haupt-Impulse stellt die Größe der Temp oder der Pegelhöhe dar. Siehe Bild.
Das wäre eine Anwendung für Komparatoren und Timer.
Grüße, picass
Dein Lieblingspic 18F14K22 hat zwar kein Timer1 Gate-Modul, dafür aber Capture, das wohl auch für diesen Zweck eingesetzt werden kann. Auch hier kann der TIMER1-Count zwischen zwei Flanken erfasst werden.
0100 = Capture mode, every falling edge
0101 = Capture mode, every rising
vgl. Datenblatt zu 18F14K22 "13.0 ENHANCED CAPTURE/COMPARE/PWM(ECCP) MODULE
mfg Ottmar
Hallo
Indem ich gerade beim vorangegangenen Thema war, habe ich mir auch gleich noch den Capture-Mode angeschaut.
Capture Mode
Dieser bietet die Möglichkeit 1, 4 oder 16 ansteigende Flanken einer Impulsfolge "einzufangen". Eine fallende Flanke ist nur als Einzelereignis zu erfassen. Will man nur die Zeit für High oder Lowpegel erfassen, kann zwischen den unterschiedlichen Flanken umgeschaltet werden.
Bei der Erfassung von 4 und 16 rising edges erhält man nach 2maligem, bzw. 4maligem Rechtschieben von CCPR1H:L die durchscnittliche Periodendauer und damit eine verbesserte Genauigkeit.
Beiliegende Codebeispiele zeigen die Initialisierung des Capture-Mode (CCP1).
vgl. Anlage 05 Code-Auszug Capture & C1.pdf
Vorverstärker/Comparator C1 für Analogsignale
Um die Schaltung universeller zu verwenden, wurde der unabhängige interne Comparaor C1 des PIC16F1827 so beschaltet und programmiert, daß dieser auch niedrigere Eingangspegel von Anlogsignalen auf TTL-Niveau umformt und so deren Periodendauer messbar macht.
Je nach Beschaltung ist die erforderliche Hysterese und der Triggerpegel in weitem Bereich durch die Beschaltung einstellbar (siehe Schaltplan)
Ein wenig Fleißarbeit ist es, die Zuordnung der invertierenden und nicht invertierenden Eingänge zu den Portpins herauszufinden. Hinweise auf die Seite im Datenblatt erfolge z.B. so: >DS.185<.
Bilder:
01 Ausgabe von Capture(4,16 )Rising Edge (verschieden Modi). Das "H" in Zeile 2, ganz rechts bedeuted, daß der Programmlauf angehalten wurde um auch die letzte, sstets wechselnde Stelle
ablesen zu können
02 Osziilogram Sinus 500mV/Teil, Rechteck 1,44V/Teil mit deutlicher
Hysterese (DeltaY = 0,51V)
03 LTspice Schaltung, mit OPA TS812 als Beispiel
04 Signalverlauf mit LTspice. die grüne Linie (Vout) liegt etwa in der
Größenordnung von Uf der Schutzdiode am Eingang unter dem 0V-Niveau.
grün: Vout Vp 5V
blau: Input Sinus Vpp 4V,
gelb: Triggerschwelle
lila: Sinus und Hysterese direkt am nicht invert. Eingang, entsprechend, dem dortigen Spannungsteiler
10k-10k. Siehe dazu das "echte"Oszillogram Bild 2
05 Code-Auszug Capture & C1.pdf