Sida 1 av 1

RA4 och RA5 som utgångar

Postat: 10 mars 2010, 21:35:22
av Kalf
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

koden:

Kod: Markera allt

void main()
{
 while(1)
 {
         TRISA = 0;
         TRISB = 0;
         
         PORTA = 0;
         PORTB = 0;
         
         delay_ms(1000);
         
         PORTA = 0b11111111;
         PORTB = 0b11111111;
         
         delay_ms(1000);
 }
}

Re: RA4 och RA5 som utgångar

Postat: 10 mars 2010, 21:48:02
av Kalf
Tack lgrfbs.
Det gäller PIC16F628A

Re: RA4 och RA5 som utgångar

Postat: 10 mars 2010, 21:50:35
av Marta
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.

Re: RA4 och RA5 som utgångar

Postat: 10 mars 2010, 21:56:20
av Kalf
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.

Re: RA4 och RA5 som utgångar

Postat: 10 mars 2010, 21:59:46
av Glenn
kan du inte välja en PIC med lite fler pinnar då ?

det är ju så trevligt med PIC att det alltid finns så otroligt många varianter att välja på :)

Re: RA4 och RA5 som utgångar

Postat: 10 mars 2010, 22:03:28
av Marta
Ä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.

Re: RA4 och RA5 som utgångar

Postat: 10 mars 2010, 22:21:48
av sodjan
> 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...

Re: RA4 och RA5 som utgångar

Postat: 10 mars 2010, 22:29:27
av Kalf
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

Re: RA4 och RA5 som utgångar

Postat: 10 mars 2010, 22:35:55
av sodjan
> Jag skall läsa på om 16F886.

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.

Re: RA4 och RA5 som utgångar

Postat: 10 mars 2010, 22:41:03
av Marta
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.