Op microprocessors waar ik gebruik van maak (16F74 en 18F452) zitten poorten met de naam AN0 en AN1, tevens RA0 en RA1 enzovoort. Bij de omschrijving staat dat het een analoge poort is, of digital I/O. Bij het simuleren van een programma in PIC Simulator IDE staan ze dan ook echt als analoge poort aan, met een waarde tussen 0 en 1024.
Wat gebeurd er als ik op mijn normale microprocessor op de betreffende pin (2,3,enz) gewoon 5 volt aansluit. Welke waarde geeft dit, en kan ik die pin's niet gewoon als digitale (1/0) I/O gebruiken?
Alvast bedankt.
Erik
In order to succeed you must fail, so that you know what not to do the next time.
je kunt de poorten als analoog of digitaal instellen. Dus afhankelijk van wat je nodig hebt kun je zelf bepalen of je hem als analoge ingang wilt gebruiken of als digitale i/o poort.
Hoe stel ik dit in? Is dit hardware matig of moet ik dat in de software veranederen? Ik programmeer de chip op dit moment in Basic met de MELabs Compiler.
EdwinNadorp
Koop hier uw kristallen bol - in 2008 ga ik m'n projecten afmaken, echt waar ....... nouja in 2009 dan ..... ehh 2010 ....
Op 13 april 2007 19:35:30 schreef Blade128:
Wat gebeurd er als ik op mijn normale microprocessor op de betreffende pin (2,3,enz) gewoon 5 volt aansluit. Welke waarde geeft dit, en kan ik die pin's niet gewoon als digitale (1/0) I/O gebruiken?
Er zal dan 1024 op staan, dat is dus geen Volts! Maar een 10bits meetwaarde van je ingang.
Ja je kan de poorten ook omschakelen naar digitaal, daar gebruik je tris voor. Staat beschreven in de datasheet van je PIC.
In Basic heb ik het volgende gebruikt:
TRISE.0 = 0 (RE0 == AN5)
vervolgens gecompiled en geladen in PIC Simulator IDE maar hij geeft nog steeds een waarde van 0-1023, analoog dus. Is dit een fout in het programma of zit ik nu dom te kijken?
Bedankt voor jullie hulp Erik en Edwin!
EdwinNadorp
Koop hier uw kristallen bol - in 2008 ga ik m'n projecten afmaken, echt waar ....... nouja in 2009 dan ..... ehh 2010 ....
EdwinNadorp
Koop hier uw kristallen bol - in 2008 ga ik m'n projecten afmaken, echt waar ....... nouja in 2009 dan ..... ehh 2010 ....
Nee ik bedoel, dat als je in de simulator kijkt naar AN5, dat de simulator er mogelijk een analoog getal van maakt omdat hij 'weet' dat het een analoge poort is.
Wellicht moet je kijken naar RE0.
Het is goed bedoeld, heb zelf nog nooit met de simulator gewerkt maar wellicht een idee
(ik zou het op een breadbordje uitproberen)
Ik heb er nog steeds problemen mee. Hij blijft het hoge signaal op de ingang AN0 maar niet herkennen. Als ik hem TRISA.1 = 0 zet geeft hij aan dat hij digitaal is (als ingang) en als ik hem dan weer terugzet naar TRISA.1 = 1 (want ik moet hem als ingang gebruiken) slaat hij meteen terug naar analoog. Kan iemand mij vertellen hoe ik heb op digitaal als ingang krijg of hoe ik het analoge signaal uitlees op het moment dat het 5 volt er op heeft staan. In de datasheet vind hier niets over.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Met het TRIS register kan je de output driver TRIStaten: uitschakelen. De poort wordt dan een input.
Verder, om de analoge waarde te lezen, moet je de AD converter instellen. Er is namelijk maar 1 AD converter, maar die kan je vertellen naar welke input hij moet kijken.
In je basic taaltje heb je een makkelijke functie om de analoge waarde van de pin te bepalen. Iets van "get_analog (5)" (om de waarde van de pin AN5 te verkrijgen). In de hardware is de PIC een 8-bits machine, en de 10-bits waarde zit dus verspreid over twee hardware registertjes.
De waarde van die pen in digitale mode zit in het "PORTE" register, op bitpositie 0.
Het datasheet is echt onmisbaar bij het programmeren van microcontrollers.