> Var ser jag vad som varje pinne är vid startup?
Det står ganska tydligt i databladet. Nej visst ja, du hade ju redan letat...
Men det är i kapitlet I/O PORTS, PORTA, PORTB o.s.v.
Sedan är det bara att kolla för den eller de pinnar som man undrar.
Det finns vissa generella regler :
- För de pinnar som *kan* ha analoga (ADC, komparator) funktioner så
gäller att de analoga funktionerna alltid är *PÅ* efter en reset.
- För den digitala delan av *alla* pinnar så gäller att de alltid är *input* efter en reset.
> t.ex. jag vet att för att använda RA2 som digital I/O måste TOCS nollas för att RA2 delar pinne med T0CKI
> och anmärkningen att detta måste göras för att använda RA2 som digital I/O hittar jag inte i databladet heller.
Kanske det, men vad är värdet efter en reset ? Det finns en speciell tabell som visar hur alla
kontroll-register (SFR) står efter en (eller olika slags) reset. Det står på många ställen för
övrigt, det är bara att kolla på beskrivningen av det aktuella registret så har du det.
Det finns även angivet på varje ställe/sida där man anger detaljerna för ett
visst register. Se t.ex "REGISTER 5-1" där OPTION_REG med bl.a T0CS finns med.
Generellt gäller att *om* du vill använda t.ex RA2, så läser du på om just RA2 i kapitlet I/O PORTS, PORTA.
Sedan sätter du allt som har med PORTA/RA2 att göra så som du vill ha det.
Det finns inget annat sätt att fixa det på !
Just i det speciella fallet med RA2 och Timer0, så är det nog inget problem.
T0CKI (extern klocka) som delas med RA2 en *ingång* så det speler ingen större roll
att den delas med RA2. Det är ju inte så att Timer0 *driver* RA2 på något sätt. Om
du inte använder Timer0 på något annat sätt så är det ju aldrig något som "syns"...
> dock, de program som följer med min pickit2 som använde PORTC 0-3 för att blinka led,
> struntar i detta helt och hållet, och de fungerar... Varför ?
Ja, ett lite slarvigt och otydligt exempel, men helt "enligt specifikationen".
Det är bara när man vill använda pinnen som digital *INPUT* som det blir
konflikt med de analoga funktionerna. För att köra dom som utgångar så
måste man inte slå av analoga funktionerna, men man gör det alltid ändå,
av diverse olika orsaker, det kan bli ganska spännande R-M-W buggar annars...
(Read-Modify-Write)