Tack Magnus_K.
Och som vanligt är det med relevant diskussion och beskrivning man får ordning på saker å ting.
En aningen mysko grej med just P12F629 är att den inte har några analoga port-definitioner, ingen ANSEL.
Men låt oss titta igen:
Kod: Markera allt
bcf STATUS,RP0 ; Bank 0
clrf GPIO ; Init GPIO
movlw 0x07 ; Set RA<2:0> not comparator
movwf CMCON ; (and perhaps as digital I/O)
Du har helt rätt i att ifrågasätta att jag ovan satte CMCON till 0011 1111, det ska bara vara <2:0> som ska vara satta (till 1). Det ska vara 0x07, inget annat.
Det är dock lite svårt förstå detta innebär att hela porten, GPIO, är satt till digital.
Nå, låt oss straska över till Register Bank (RP, inte RB?!) och ställa in annat:
Men vi kommenterar ut att pilla med ANSEL, då det inte finns någon på just denna PIC.
Inga portar som kan ställas analoga och ingen ANSEL.
Sedan ställer vi de numera(?) digitala I/O som Input eller Output...
Kod: Markera allt
movlw b'00001111' ; Set GP<5:4> as Output &
movwf TRISIO ; GP<3:0> as Input
bcf STATUS,RP0 ; Bank 0
...och går tillbaka till Register Bank 0.
Men om man nu måste tala om för GP<2:0> att de inte ska vara komparatordelar, måste man inte göra sammalunda med GP<5:3>...?
Vad dessa nu ska sägas till vad de inte ska vara, och om detta innebär att de då oxå blir digitala....?
Det känns som det vore bättre säga vad portar ska användas till, istället för vad de inte ska användas till... Det är bara en sak de
kan vara, men det är många saker de inte
ska vara, så att säga.