Heb de datasheet doorgenomen en ook flink gezocht op internet, maar ik kom er zelf niet uit.
Ik ben bezig met een project waarbij ik EUSART1 van de PIC18F8722 gebruik. Eigenlijk heb ik alleen de RX-pin nodig omdat de schakeling alleen data ontvangt, de TX pin zou ik graag als digitale uitgang gebruiken.
Het ontvangstgedeelte heb ik interruptgestuurd gemaakt en werkt prima.
Probleem is echter dat de TX-pin automatisch gekoppeld wordt aan de EUSART en dus hoog gemaakt wordt.
Bij sommige PICs is er een mogelijkheid om de idle-state van de TX-pin te wijzigen (en zo de EUSART misbruiken als digitale output door die bit te togglen), maar deze optie kan ik bij de 18F8722 niet vinden.
In feite wil ik bereiken dat de TX-pin hoog wordt gemaakt zodra gedurende een x tijd geen data ontvangen is op de RX-pin. Wanneer data ontvangen wordt, moet de pin dan weer laag gemaakt worden.
Wie weet hier een slimmigheidje voor?
hadv
Just find out what you like and let it kill you
Ik heb even snel door de datasheet gesnuffeld, maar ik lees alleen dat TRISC<6> als output moet worden gezet. Ik zie nergens staan dat je de PORTC.6 niet zelf mag instellen als je alleen ontvangt.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Dank voor de reacties!
Wanneer de EUSART enabled is, werkt de poort-functie blijkbaar niet meer omdat de EUSART dominant is. De pin hoog of laag maken heeft dan naar buiten toe geen effect meer, waarschijnlijk omdat de multiplexer van de uitgang dan op EUSART staat.
Ook het disablen van TXEN heeft helaas geen effect.
Ben er zojuist achter dat het voldoende is om de pin als ingang te schakelen om hem laag te maken. Terug uitgang schakelen maakt hem dan weer hoog.
Voor mijn applicatie is dit voldoende omdat ik er rechtstreeks een LED mee schakel en daardoor de pin best hoogohmig mag zijn als 'ie logisch "0" is.
Blijkbaar zit de ingang/uitgang-switch als laatste in de keten, waardoor ik hiermee weg kom... 