ik ben bezig met het maken van een servo control in proton pic basic.met de 16F628a
ik rijg output naar poort b2, maar hoe krijg ik die output ook op poorta4
ik moet de ontvangerpuls inlezen en sturen naar 2 servo's , waarvan 1 in reverse.
Ook moet er bij de uiterste uitslag geen puls meer op de servo staan.
probeercode:
DEVICE 16F628A ;Gebruik een 16F628A type
CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
;CONFIG WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF, HS_OSC ;INTRC_OSC_NOCLKOUT verwijderd
ALL_DIGITAL TRUE ;Alle ingangen digitaal
;XTAL 20 ;Kristal van 20MHz
;Alle uitgangen op de chip declareren.
Symbol zwaardL = PORTB.2
Symbol zwaardR = PORTA.4
;Alle ingangen declareren
Symbol InputCH7 = PORTB.0
DIM Positie AS WORD ;variabele bevat de positie van de motor-as
DIM Positie2 AS WORD ;variabele bevat de positie van de motor-as
Symbol True = 1
Symbol False = 0
; 76543210
PORTA = %00000000 ;Maak alle 8 bits van poortregister PORTA laag
PORTb = %00000000 ;Maak alle 8 bits van poortregister PORTB laag
TRISA = %00000000 ;Alles uitgangen op poort A
TRISB = %00000001 ;B0 is een ingang
;Hoofdprogramma
WHILE 1 = 1 ;Oneindige lus
FOR Positie = 1000 TO 2000 STEP 20 ;Omhoog tellen met stapjes van 20uSec
SERVO zwaardr, Positie ;Stuur 'Positie' pulsjes naar PORTA.4
DELAYMS 20 ;20mSec = 50Hz, eventueel wijzigen bij ander type motor
NEXT
FOR Positie = 2000 TO 1000 STEP -20 ;Terug tellen met stapjes 20uSec
SERVO zwaardr, Positie ;Stuur 'Positie' pulsjes naar PORTA.4
DELAYMS 20 ;20mSec = 50Hz, eventueel wijzigen bij ander type motor
NEXT
FOR Positie2 = 1000 TO 2000 STEP 20 ;Omhoog tellen met stapjes van 20uSec
SERVO zwaardl, Positie2 ;Stuur 'Positie' pulsjes naar PORTB.2
DELAYMS 20 ;20mSec = 50Hz, eventueel wijzigen bij ander type motor
NEXT
FOR Positie2 = 2000 TO 1000 STEP -20 ;Terug tellen met stapjes 20uSec
SERVO zwaardl, Positie2 ;Stuur 'Positie' pulsjes naar PORTB.2
DELAYMS 20 ;20mSec = 50Hz, eventueel wijzigen bij ander type motor
NEXT
WEND ;Terug naar WHILE