Vielen Dank für all eure Anregungen!
Ich komme leider er jetzt wieder dazu, ich dem Projekt zu widmen.
Die Idee von 021aet04 kam mir sehr interessant vor, so habe ich versucht, mir nach dieser etwas zusammen zu basteln.
Problem / Denkfehler / whatever was nun auftritt: Wie kann ein Interrput Pin auf verschiedene Ereignisse reagieren?
Ich habe am tiny einen Interrupt Pin, an diesen hänge ich das PWM Signal.
Nun lege ich im Kopf des Programmes fest, dass bei steigender Flanke unterbrochen werden soll, nach der Idee von 021aet04.
Aber wie sorge ich jetzt dafür, dass der gleiche Pin anschließend auf eine fallende Flanke reagieren soll?
Ich kann diesen noch nicht im Programm umstellen?
Hier der bisherige Versuch, falls interessant für euch:
PS: In diesem Programm geht es probehaft erst einmal darum, eine LED anzuschalten, wenn der Duty Cyle kurz genug ist.
Code:
$regfile = "ATtiny45.dat"
$crystal = 1000000
$hwstack = 40
$swstack = 16
$framesize = 32
Pwm_mobo Alias Portb.2
Config Pwm_mobo = Input
Led Alias Portb.3
Config Led = Output
Config Timer0 = Timer , Prescale = 1
On Int0 Steigende_flanke 'Wenn Int0 ausgelöst wird, springe zu Label Steigende_Flanke
Config Int0 = Raising 'Int0 löst bei steigender Flanke aus
Enable Interrupts
Do
'Mit dem Hauptprogramm habe ich mich noch nicht befasst
If Tcnt1 > X Then 'X = Anzahl der Ticks ab der der Zustand der LED gedert werden soll
Led = 1
Else
Led = 0
Loop
Steigende_flanke:
Timer0 = 0 'Timer auf 0 setzen
Enable Timer0 'Timer starten
Return 'zutück ins Hauptprogramm springen
Lesezeichen