Hi,
ich verstehe noch nicht, wie du mit dem AVR den Flieger steuern willst, vielleicht kannst du das mal erklären. Willst du den Flieger nur am Boden damit steuern und ist der AVR direkt mit dem Servo verbunden? Wie sollen sich die Servo-Werte im µC ändern, automatisch oder indem du irgendwelche Taster drückst?
Das Durchschleifen würde ich jedenfalls etwas aufwändiger tun.
Soweit ich weiß, bestimmt die Länge der High- und Low-Pegel, wie sich das Servo einstellt. Dies sollte also möglichst stabil sein und nicht von irgendwelchen anderen Dingen abhängen, die der AVR gerade tun will.
Daher würde ich den Input an einen externen Interrupt Pin (z.B. INT1) hängen.
Im Programm machst du dann sowas:
Umschalten wirst du wohl über einen Schalter, also einen entprellten Input Pin.Code:RC Alias 1 µC Alias 0 RC_input Alias PIND.3 'hier ist beim Mega8 der INT1 dran Servo_output alias PORTD.4 'irgendein Pin Dim Control as Byte Config Servo_output = Output Config INT1 = Change 'bei jeder Leveländerung wird die ISR ausgeführt ON INT1 Int1_isr Control=RC Do If Control=µC Then 'also Steuerung durch den µC .... 'dies hängt ab von deiner Art der Eingabe bzw. Automatik, aber jedenfalls ohne waits End If Loop Int1_isr: If Control=RC Then 'dein Umschalter zwischen RC und µC Servo_output=RC_input 'dein Output Pin zum Servo wird auf den Input Pin gesetzt Endif Return
Evtl. kannst du auch ganz auf den Servo Befehl verzichten und änderst den Servo-Pin im µC-Mode über einen Timer. Dann bist du auch da flexibel.
Gruß
Rolf







 
			
			 
					
					
					
						 Zitieren
Zitieren

Lesezeichen