Hallo ihr Elektronikmenschen, Ich bin momentan dabei einen Roboter zubauen. Ich habe mir dafür den BoE-Bot von Parallax ( http://www.parallax.com/Store/Robots/AllRobots/tabid/128/ProductID/302/List/1/Default.aspx?SortField=ProductName,ProductName) zugelegt um das Gestell und die Servos zu haben. Die Platine und Schaltung werde ich selber realisieren. Ich benutze einen PIC16F872, das PicKit2 von Microchip und programmiere mit MPLAB. Ich habe die Schaltung auf einem Steckbrett aufgebaut und die beiden Servo's so programmiert, dass er vorfährts fährt. Ich habe die Standartzeiten für Vorfährts- bzw. Rückwärtsfahren benutzt. Steuer ich einen Servo vorwärts und einen rückwärts an, ergibt das die Vorwärtsfahrt, da sie ja Seitenverkehrt eingebaut sind. Möchte ich nun rückwärtsfahren und ändere die Zeiten, steuern sie nicht in eine, sondern in entgegengesetze Richtung. Nun frage Ich mich, wie ich die Rückwärtsfahrt realisiere. Das Programm ist im Anhang! Danke für eure Hilfe im Voraus :) ;***** VARIABLE DEFINITIONS w_temp EQU 0x7E status_temp EQU 0x7F RB1 EQU 0x21 RB2 EQU 0x22 zeit1 EQU 0x23 zeit EQU 0x24 ;***** DEFINITIONEN #DEFINE Servo1 PORTB,1 #DEFINE Servo2 PORTB,2 ;********************************************************************** ORG 0x000 ; processor reset vector clrf PCLATH ; ensure page bits are cleared goto init ; go to beginning of program init bsf STATUS,RP0 movlw B'00000000' movwf TRISB movlw B'11111111' movwf TRISA bcf STATUS,RP0 clrf PORTB clrf PORTA main ;vorwärts fahren0 Bsf Servo1 call wait1 Bsf Servo2 call wait2 Bcf Servo1 Bcf Servo2 call wait3 goto main wait1 ;2ms movlw D'4' movwf zeit movlw D'125' movwf zeit1 nop decfsz zeit1,f goto $-2 decfsz zeit,f goto $-6 return wait2 ;1ms movlw D'2' movwf zeit movlw D'100' movwf zeit1 nop decfsz zeit1,f goto $-2 decfsz zeit,f goto $-6 return wait3 ;18ms movlw D'18' movwf zeit movlw D'249' movwf zeit1 nop decfsz zeit1,f goto $-2 decfsz zeit,f goto $-6 return END ; directive 'end of program'
Als Zusatzinformation, ich benutze einen 4 Mhz Keramikschwinger.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.