ecco perché mi lasciavano perplesso, non afferravo il concetto al 100%
Ho provato come mi hai detto e non funziona, quindi mi sono intestardito e ho fatto dei test partendo dallo zero assoluto:
- ho verificato tutti i contatti elettrici affinchè siano davvero efficienti
- ho provato un'altra zona della breadboard, magari quella attualmente utilizzata fosse difettosa
- sono partito con un programmino che mi fa lampeggiare un led in tutte le porte
- Codice: Seleziona tutto
#include <htc.h>
#include <delays.h>
main () {
ADCON0 = 0b00000000;
OSCCON = 0b01101110;
INTCON = 0;
TRISA = 0;
TRISB = 0;
while (1)
{
PORTA=0B11111111;
PORTB=0B11111111;
Delay10KTCYx(100);
PORTA=0;;
PORTB=0;
Delay10KTCYx(100);
}
} //Fine main
Il risultato è che non tutte le porte commutano correttamente fra 0 ed 1. In dettaglio non funzionano i PIN 3,4,8, che sarebbero RA4, RA5, RB0 (ho ovviamente provato a disattivare interruzioni, A\D, PWM)
Ho allora fatto un debug , vi allego una immagine del risultato dopo le istruzioni PORTA=1 e PORTB=1
anche qui si vede che c'è qualche problema, ma discorda coi testi pratici.
dite che devo sostituire il PIC?