> Är det nödvändigt att gå in och fixa med register man inte har nytta av?
Nej, om de inte påverkar det man har nytta av.
Ja, om de (ja, tvärt om då...)
Detta är inte alltid speciellt självklart. Så det är aldrig ogjort arbete
att kolla igenom databladet så att man i alla fall vet varför man inte
behöver fixa med de register som man hoppar över.
Just det om Icecap pekar på (analoga funktioner) är nog det allra mest
vanliga missen som man gör i början när man inte har kollat igenom
databladet ordentligt.
I de allra flesta fall så är det angivet i kapitlet för den enhet som man
tänker använda (t.ex "I/O PORTS") vilka andra delar av processorn som
man måste tänka på (t.ex registren för enable/disable av analoga funktioner).
Så i ditt aktuella fall, så är det så att CMCON måste man *alltid* se
till att det är ställt rätt. I 99 fall 100 100 betyder det att stänga av
komparatorerna helt.
Och varför är då inte just det läget power-on-default ?
Därför att man inte vill att pinnar som *kan* vara anslutna till
analoga signalkällor ska "starta" i digital-mode !
> att man ska anropa alla register som listas i databladet och sätta ett värde på dessa för att undvika överraskningar!?
"Alla" kanske är att hårddra det lite. Det finns register som enbart styr
den interna funktionen i vissa register (som t.ex registret för baud-rate
för USART) och dessa spelar ingen roll hur de är konfigurerade om man
ändå inte använder USART.
Däremot, om man t.ex ska använda I/O portar (vilket är väldigt vanligt

)
så läser man kapitlet "I/O PORTS" och tar hänsyn till det som står där.
Där står t.ex att alla pinnar med analoga funktioner alltid startar i
analog-mode. Detta får man fixa i sin "init" rutin.