Har lite problem med att få en open collector utgång att fungera. Jag tänker bara dra upp hur jag gör i teorin och vill veta om det finns några minor man kan springa på, för jag tror att jag gjort det
Det jag ska göra är att skicka en byte seriellt på open collector vis. När jag vill ha en HÖG nivå sätter jag PIC's aktuella I/O till ingång . När jag vill ha den låg så gör jag den till utgång (och har dess för innan satt GPIO för pinnen till LÅG)
typ så här...
(Jag förutsätter att SYSDATA initialt är ingång)
Kod: Markera allt
bcf GPIO,SYSDATA ;I/O pinnen till låg
bsf STATUS,RP0 ;Bank1
bcf TRISA,SYSDATA ; SYSDATA utgång (Låg)
call WAIT
bsf TRISA,SYSDATA ;SYSDATA Ingång (Hög)
call WAIT
bcf TRISA,SYSDATA ; SYSDATA utgång (Låg)
bcf STATUS,RP0 ;Bank0
I min "riktiga" kod så växlar jag mycket mer mellan bankerna eftersom jag har lagt vissa intressanta variabler i bank0. Kan detta ge mycket bekymmer? Finns det något smart sätt att lösa det så man slipper swappa mellan bankerna?
Jag använder en gammal 12c672. (Snälla ifrågasätt inte varför)
