Ich glaube das wird nicht unterstützt, aber wenn es so funktioniert (bzw. funktionieren müssteRead(LOW) --> du bekommst LOW und TEMP:=HIGH
Read(HIGH) --> du bekommst den Inhalt von TEMP
Ist schon richtig so wie's dasteht.
'Systick' sagt mir nix, ich kenn die Sprache nicht nur die AVR-Hardware ist mir etwas vertraut. Möglicherweise unterstützt die Sprache direkt das Lesen eines 16 Bit mit foo := ICR1) muss man sich ja darüber erstmal nicht mehr den Kopf zerbrechen.
Hm, keine Ahnung was das für ein Modus ist; ist ein HardwarePWM der von Timer 1 abhängt und an OC1A, B und C ausgibt.
Ursprünglich wollte ich die im Compiler integrierte 'FreqCount'-Funktion nutzen, da ich aber 2 PWM-Frequenzen erzeugen muss (Timer1) und 2 Frequenzen einlesen möchte (Freqcount braucht für jede Frequenz nen eigenen Timer) und der Atmel nur 2 Timer (1 und 3 [desswegen Timer2 nicht möglich]) hat, geht das nicht.
Ja, in 5ms müsste sich einiges reißen lassen...
Wobei wenn ich jetzt dran denke, dass ich aufgrund der auch benötigten ADC-Wandlung 12ms 'Zwangs Pause' einlegen muss - tja, da wird mal wohl nicht um Multitasking drum rum kommen und stat nem Delay Sleep nutzen; naja bis jetzt ist das aber alles in dem Testprogramm noch nicht implementiert, kann also auch keine Fehlerquelle sein.
___
Ok, hab jetzt mal den ganzen PWM-Quatsch rausgenommen, und siehe da, es funktioniert!!!
Aber wie soll mein Roboter ohne PWM fahren können? SoftPWM?
Ich dreh hier gleich durch...
MK
EDIT: Im Anhang mal der Aufgezeichnete Verlauf mit meiner Software (hab den Motor auf 100% betrieben [da kein PWM möglich] und ihn 'per Hand' abgebremst/belastet)...da wird noch ein bisschen Filterarbeit nötig sein
Lesezeichen