basz
Low cost Mantis CNC bouwebeschrijving zie www.basmolkenboer.nl
Hey allemaal!
Ooit heb ik serieele communicatie in C met de pickit 1 voor elkaar gekregen. Nu wil ik dat geleerde in praktijk brengen met een 16f628a. Alleen ik loop vast bij de initialisatie die volgens mij toch moet kloppen
;DEFINE's
#define BANK0 bcf STATUS,RP0 ; RAM PAGE 0
#define BANK1 bsf STATUS,RP0 ; RAM PAGE 1
; define your pin direction (input/output)
BANK1 ; Switch to bank 1
movlw b'00000000' ;
movwf TRISA ; PORTA = all outputs
movlw b'00000110' ;
movwf TRISB ; PORTB = alleen RB1 en RB2 zijn input
BANK0 ; Switch to bank 0
serinit
MOVLW d'25'
MOVWF SPBRG ;SPBRG = 25; // baudrate 9600
BCF TXSTA,SYNC ;SYNC = 0 asynchronous mode
BSF RCSTA,SPEN ;SPEN = 1 hoog zodat verzenden enabled is
BSF RCSTA,CREN ;CREN = 1 hoog zodat ontvangen enabled is
main
movlw b'11001100'
movwf TXREG
; btfss PIR1,RCIF ;kijk of ontvangen is voltooid
call ontvangen ;ga naar subroutine
goto main
ontvangen
bsf PORTA,1 ;led aan
movfw RCREG ;ontvangen data naar w
call inklok
call delay
bcf PORTA,1
return
De waarde die ik verstuur is alleen ter controle en maakt dus niet uit wat het is. Inklok is een routine die 8bits op een schuifregister zet.
Het geheel stuur ik naar mijn pickit1 waar werkende code inzit. Data versturen tussen een 16f628a en een 16f88 zou toch moeten kunnen? Baudrate is bij beide hetzelfde ingesteld. Iemand die mij opweg kan helpen of een standaard voorbeeldje heeft voor de 628a? Alvast bedankt!
hier staat een voorbeeld:
http://www.circuitsonline.net/forum/view/56169
fripster
basz
Low cost Mantis CNC bouwebeschrijving zie www.basmolkenboer.nl
dankje! Met de zoekfunctie vond ik veel onafgewerkte code maar hier kan ik wat mee.
iemand die nog kan bevestigen dat met een losse 16f628a met een pickit1 geen probleem is?