Hallo
Ich muss eine kleine Schaltung Bauen für eine Maschine da die Elektronik durch ein defektes Netzteil beschädigt wurde . Sie Läuft soweit wider bis auf ein kleines Modul das ich nun m.h. eines Attiny13 nachbauen will.
Zum Verständnis die Funktion: auf einer Welle sitzt ein Magnet der einen Hallsensor bei 0° schaltet (Flanke H zu L) und bei 90° abschaltet (Flanke L zu H) ich brauche nun jeweils für 0° und 90° auf getreten Ausgängen einen Impuls von 2ms.
Ich habe etwas gegoogelt und bin auf den PCINT gestoßen und denke das ist das was ich brauche
Ich habe einen kleinen Programmcode gebastelt der auf dem Steckbrett schon mal zu funktionieren scheint.
Da ich nicht der Profi bin Jetzt die Frage an die Experten ist das so richtig oder kann man noch was verbessern.?
Gruß ronyh
Alles anzeigen
Ich muss eine kleine Schaltung Bauen für eine Maschine da die Elektronik durch ein defektes Netzteil beschädigt wurde . Sie Läuft soweit wider bis auf ein kleines Modul das ich nun m.h. eines Attiny13 nachbauen will.
Zum Verständnis die Funktion: auf einer Welle sitzt ein Magnet der einen Hallsensor bei 0° schaltet (Flanke H zu L) und bei 90° abschaltet (Flanke L zu H) ich brauche nun jeweils für 0° und 90° auf getreten Ausgängen einen Impuls von 2ms.
Ich habe etwas gegoogelt und bin auf den PCINT gestoßen und denke das ist das was ich brauche
Ich habe einen kleinen Programmcode gebastelt der auf dem Steckbrett schon mal zu funktionieren scheint.
Da ich nicht der Profi bin Jetzt die Frage an die Experten ist das so richtig oder kann man noch was verbessern.?
Gruß ronyh
Quellcode
- $Regfile="attiny13a.dat"
- $Crystal=20000000
- $hwstack=8
- $swstack=0
- $framesize=0
- Pcmsk.1 = 1 ' PCINT für Port B.2 freigeben
- Gimsk.5 = 1 ' PCints aktivieren
- Sreg.7 = 1 ' Interrups ein
- On Pcint0 up
- Config Pinb.1 = Input ' Pin 6
- Portb.1 = 1
- Config Portb.3 = Output 'Pin 2
- impuls1 Alias Portb.3
- portb.3 = 1
- Config Portb.4 = Output 'Pin 3
- impuls2 Alias Portb.4
- portb.4 = 1
- Do
- reset impuls1
- reset impuls2
- Loop
- up:
- Pcmsk.1 = 0
- if Pinb.1=1 then
- set impuls1
- waitms 2
- reset impuls1
- endif
- if Pinb.1=0 then
- set impuls2
- waitms 2
- reset impuls2
- endif
- Pcmsk.1 = 1
- return
- end
Gruß aus Thüringen
Ronyh
***************
Ronyh
***************