> Jo tack det var en bra beskrivning, sökte på Pull-up/down-motstånd och fick fram att det
> man använder är en resistor och kondensator och om jag förstått din text rätt så är
> det alltså detta som finns inbygt i picen...
Nej. Ingen kondensator. Pull-up har inget med någon kondensator att göra, den
(kondensatorn) används till annat och fanns den där så är det av andra orsaker.
Googla lite efter "open cmos inputs" så hittar du en hel del om varför man
aldrig ska ha öppna CMOS-ingångar. Och detta gäller helt generellt oavsett
om det råkar vara en PIC eller något annat. Det gäller *ALLA* CMOS-kretsar.
Det betyder också att du t.ex aldrig ska lämna oanvända pinnar på en PIC
som oanslutna ingångar. Antingen (enklast) programmerar man dom som utgångar
eller så får man koppla något till dom (t.ex pull-ups).
> Vad gör den svårläst?
Indenteringen (eller igentligen bristen på). Rent formellt är den sannolikt korrekt
och kompilatorn kan säkert läsa den, men nu var det ju *jag* som klagade...
Sen kan man ju alltid ha synpunkter på vad en kommentar som denna tillför:
INTF=0; //Nollställer flaggan
Det är ju ganska uppenbart att INTF flaggan nollställs, eller hur ?
Och detta :
TRISA=0x04; //Sätter RA2 till ingång
blir tydligare och mer lättläst om du skriver :
TRISA=b'00000100'; //Sätter RA2 till ingång
Om jag skulle "städa upp" din kod lite så skulle det bli något sådant här :
Kod: Markera allt
#define _XTAL_FREQ 4000000
#include <htc.h>
void interrupt blinka(void);
int a=0;
void main(){
TRISA=b'00000100'; //Sätter RA2 till ingång
TRISC=b'00000000'; //Sätter C portar till utgångar
INTEDG=1; //Interrupt on rising edge of RA2/INT pin
GIE=1; //Enablar Global interrupt
INTE=1; //Tillåter Interrupt på RA2/INT
INTF=0; //Nollställer flaggan
RC0=a; //Släckt så länge ingen interrupt har verkat (a=1 om det någongång skett en interrupt)
while(1);
}
void interrupt blinka(void){
a=1; //interrupt sätter a=1
INTF=0; //Nollställer flaggan
}
Notera indenteringen och att alla kommenterar är på samma "nivå".
Jag har även rättat ett par stavfel ("blinka" rest "bilnka", spelade det ingen roll ??).