Hej, igår att när jag var *lite* trött uptäckte jag att man kan använda en utgång som en ingång på en PIC16F628A Jag glömde sätta pinnen till ingång, så den stog som en låg utgång, Men trots det så gick det att se status med "btfss" komandot. Kopplade jag den till plus var den hög men om jag kopplade den till pluss via ett 10k motstånd gick det inte.. Men det borde väll gått väldigt mycket ström genom den? Det gick inte alls mycket, kanske 100mA max...
Om du kollar I/O-pins-schemat i databladet ser du också varför det funkar.
Har hört om folk som har använt utgångar som ingångar med ett syfte (vilket jag inte minns).
Det känns ju inte som att det är så bra för livslängden. Men det borde inte påverka så mycket om den är kortsluten kortare andelar av tiden, så att kretsen inte blir varm.
Fast att ha den inkopplad i sekunder kan ju inte vara så bra dock. Den utvecklar ju trots allt minst 0,5 Watt extra då. Blev den inte varm?
i lite värre chipp andvänds det ofta som "WEAK output" alltså att det funkar som pull-up/pull-down, kan andvändas då man kör bidirectional kommunikation på en ledning
tex
MCU skickar ut en svag etta för att starta något och sen kan den confirma med att dra ner den till noll.
Det är en bra metod att dubbelkolla så att utgången beter sig som man vill. Om du vill göra en energiineffektiv oscillator kan du hänga på en stor konding på utpinnen och toggla den när du har en match mellan satt utgångsvärde och reellt värde.
Om jag inte minns fel så har PIC(16) gemensamt register för skrivning och läsning till I/O, som alltså beter sig olika om man läser eller skriver till det.
På AVR finns det tre register till varje I/O. Två för att ställa ingång/utgång, hög/låg, pullup/ej inte pullup och det sista för att läsa av verkligt tillstånd.
PIC16 (alla före PIC18?) läser pinnens nivå, inte utgångsregistret. Med PIC18 kan man välja hur det skall vara genom att det finns två SFR, ett som läser pinnen och ett som läser registret. Att kretsen inte blev varm tror jag inte på, 100mA är 0.5W och det värmer gott i en IC. Hur som helst är det klart olämpligt. Vill man ha soft pull-up så finns det på någon av portarna, en bit i ett SFR aktiverar den.
Vissa MCU, t.ex. 8051, har bara pull-up på utgångarna. Det finns ingen riktig drivning för att sourca ström. Kan vara bra om man vill driva transistorer o.dyl. eller ha någon sorts 1-trådsbuss, men personligen tycker jag inte om det.