Hej. Jag har problem med en enkel "blink-a-led" programmering. Jag gjorde en enkel uppkoppling där jag blinkar alla utgångar varje sekund. Men RA4/T0CKI/CMP2 och RA5/MCLR/VPP blinkar inte? Jag har letat i databladet, men hittar inte om jag måste stänga av något för att få dem att fungera som utgångar.
Till varje utgång är det kopplat en led med motstånd, sedan bara programeraren (wisp 628) och gnd och +5v
RA5/MCLR kan aldrig användas som utgång, den är endast ingång och detta endast i nödfall om det verkigen är brist på pinnar. Du får problem att flasha om PIC ifall Du konfigurerar den som intern MCLR. Då måste Vpp appliceras före Vdd för att kunna flasha den. Låt denna pinne vara enbart MCLR/Vpp om Du har minsta möjlighet att låta det vara så.
RA4 är sannolikt öppen kollektor. Den kan enbart sänka ström, inte driva. Om Du kopplar Din LED mellan +5V och denna pinne, samt givetvis gör motsvarande ändringar i programmet, så kommer det troligtvis att fungera. Inte alla PIC är på detta viset, men flera av dem har en sådan utgång på en av pinnarna, oftast (alltid?) RA4 i så fall.
Edit: 628 är en av de som har RA4 som öppen kollektor.
Ok, tack för svaret. Då måste jag tänka om lite för till mitt projekt behöver jag tre ingångar och 13 utgångar... och RB0/INT behöver vara ingång för behöver använda interrupt när den blir hög.
Är det lysdioder som skall drivas från utgångarna och där finns processorkapacitet över för det så kan Du multiplexa dessa och spara en hel del pinnar. Med "charlieplex" kan Du spara ännu fler. 20 LED på 5 pinnar.
> till mitt projekt behöver jag tre ingångar och 13 utgångar...
Välj en PIC modell som har det då. Vad är problemet ?
Ta en modern 28-pinnare så har du även lite att växa i.
16F886 är riktigt prisvärd även från ELFA...
Jag har en 4*7segments display som jag driver med 8 + 4 utgångar då de 8 är för varje segment och 4 för varje siffra (common cathode via transistor) sedan skall jag ha en utgång som enbart skall sätta en 1'a när jag vill =P orkar inte förklara allt nu. Men det är LED-displayen som kanske skall kopplas på något annat sätt då?
sodjan: Jag skall läsa på om 16F886. kanske inte vore så dumt
Ja, det är ju samma "familj" som 628A men 2-3 generationer senare.
Helt kort :
- (Mycket) bättre intern oscillator.
- Mer minne (både flash och RAM).
- Alltså 28 pinnar istället för 18 (med det är ju ingen "finess" direkt).
- Generellt bättre interna moduler som USART, ADC, PWM o.s.v.
Programmeringen är dock nästan helt lika, samma arkitektur och samma
kommandouppsättning.
Då har Du tydligen redan multiplexad drivning av displayerna. Har Du inte en displaymodul med intern hopkoppling av siffrorna så byt till charlieplex. Då går det bara 9 pinnar till dessa. Du kan även ha 9 displayer på dessa 9 pinnar om Du vill. Behöver Du inte decimalpunkten, alternativt har den på fast position, räcker 8 pinnar.