hey
ik zou met mijn pic16F628 eeen adc willen lezen maar ik weet niet welke commando's ik moet gebruiken om een variabele gelijk te stellen aan poort B waar de adc aangesloten is. ik programmeer in basic met het programma van mikro elektronica.
ik kan dit niet gebruiken want ik prog met de software van mikro elektronika want als ik proton gebruik loopt die altijd vast bij mij. en ik schrijf "niemand" zodat het terug in het lijstje kwam 
EdwinNadorp
Koop hier uw kristallen bol - in 2008 ga ik m'n projecten afmaken, echt waar ....... nouja in 2009 dan ..... ehh 2010 ....
Welke adc heb je aangesloten? Welke interface?
De 628 is leuk om mee te beginnen maar ik was er snel op uitgekeken. de 877 heeft een ad convertor intern, daar is het makkelijker uit te lezen.
Je zal moeten bitbangen ben ik bang.
Wat heb je tot zover al gedaan?
wat is bitbangen??? en ik heb 2 verschillende adc's nl. ADC0808 en ADC0804. en mijn idee was om de adc aan te sluiten op poort B en ook een lcd aan te sluiten op poort B en dan met poort A het adc te enabelen en het lcd wanneer het nodig is.
EdwinNadorp
Koop hier uw kristallen bol - in 2008 ga ik m'n projecten afmaken, echt waar ....... nouja in 2009 dan ..... ehh 2010 ....
Humm, ziet er uit alsof het 'gewoon' parallel is ipv serieel. Bitbangen is dan niet nodig.
Heb je al een schema gemaakt?
Maar om in de code je variabele gelijk te stellen aan portb doe je als volgt
dim variabele as byte
...
variabele = portb
Maar iets zegt mij dat je meer info nodig heb.
Heb je de examples van mikroBasic al bekeken? Er zijn een hoop voorbeelden. Je kan natuurlijk ook de voorbeelden van de 877 bekijken.
Heb je de examples van mikroBasic al bekeken? Er zijn een hoop voorbeelden. Je kan natuurlijk ook de voorbeelden van de 877 bekijken.
ja maar daar zat niet zoveel nuttige informatie in. maar hetgeen wat ik wil is dat de informatie die op poort B ook nog word omgezet in een character zodat ik het op het display kan zetten en ik heb het zo al geprobeert en toen deed ik dit :
dim a as byte
main:
a = PORTB
PORTA = a
goto main en dit lukte niet waardoor komt dit ??
Henry S.
Moderator
Confucius says chà bù duo. Deze post is niet door ChatGPT gegenereerd. De 2019 CO labvoeding.
heb ik gedaan en het werkt nog steeds niet
EdwinNadorp
Koop hier uw kristallen bol - in 2008 ga ik m'n projecten afmaken, echt waar ....... nouja in 2009 dan ..... ehh 2010 ....
dim a as byte
dim a_lcd as char[3]
delay_ms(500) ' wacht voor stabilisatie van LCD
Lcd_Init(PORTD) ' Initialize LCD connected to PORTD
Lcd_Cmd(LCD_CLEAR) ' Send command to LCD "clear display"
Lcd_Cmd(LCD_CURSOR_OFF) ' Send command cursor off
while true
a = PORTB ' zet waarde van poort B in a
a = Bcd2Dec( a ) ' converteer de BCD naar decimaal
ByteToStr( a, a_lcd ) ' maak er een string van
Lcd_Out( 1, 1, a_lcd ) ' zet het op de lcd
wend
end
Zo, nu ben je alvast op weg.
Wel even de code 'iets' aanpassen voor jouw situatie. Zo zal de LCD niet op poort D zitten bij jou.
ik heb dit programma nu aangepast zodat je de waarde van poort a ziet op het lcd maar er staat altijd 0 welke waarde poort a ook heeft. hoe komt dit ?? is het mss omdat poort A geen volledige byte is ??
[Bericht gewijzigd door woutermans op ]
EdwinNadorp
Koop hier uw kristallen bol - in 2008 ga ik m'n projecten afmaken, echt waar ....... nouja in 2009 dan ..... ehh 2010 ....
PORTA is wel degelijk een volledige byte, hoewel het verstandig is om even van de !MCLR af te blijven met je fuses.
Post je code eens, zo is het alleen maar raden voor me.
Hoe weet je dat er geen 0 aangeboden wordt door je ADC?
Staat de multiplexer van de ADC goed?
Hoe stuur je je ADC aan? (schema)
ik had eerst met adc gedaan in free run mode en dan aangesloten maar er gebeurde niks en toen heb ik gewoon een paar poorten van poort A hoog gemaakt en er gebeurde nog niks dus ik denk niet dat het daar aan ligt. en ik weet wel dat poort een volledige byte is maar bij mij is die zo niet ingesteld: ik gebruik MCLR namelijk. en de code is hetzelfde als jou code behalve dat d bij mij b is en bij b is bij mij a
[Bericht gewijzigd door woutermans op ]
EdwinNadorp
Koop hier uw kristallen bol - in 2008 ga ik m'n projecten afmaken, echt waar ....... nouja in 2009 dan ..... ehh 2010 ....
het werkt nog niet 
als ik iets aansluit op poort A.4 tot 7 krijg ik dat op het lcd maar bij poort A.0 tot 3 gebuert er niets. hoe komt dit ?? deze code gebreuk ik:
program test
dim a as byte
dim a_lcd as char[3]
TRISA = $00
main:
delay_ms(500) ' wacht voor stabilisatie van LCD
Lcd_Init(PORTB) ' Initialize LCD connected to PORTD
Lcd_Cmd(LCD_CLEAR) ' Send command to LCD "clear display"
Lcd_Cmd(LCD_CURSOR_OFF) ' Send command cursor off
while true
a = PORTA ' zet waarde van poort A in a
a = Bcd2Dec( a ) ' converteer de BCD naar decimaal
ByteToStr( a, a_lcd ) ' maak er een string van
Lcd_Out( 1, 1, a_lcd ) ' zet het op de lcd
wend
end.
EdwinNadorp
Koop hier uw kristallen bol - in 2008 ga ik m'n projecten afmaken, echt waar ....... nouja in 2009 dan ..... ehh 2010 ....
Ik blijf erbij dat het TRISA = $FF moet zijn, je wilt de pinnen immers als input hebben, maar dat kan aan mijn engels liggen.
Dat je de bovenste nibble wel als input kan lezen en de onderste nibble niet is mij een raadsel.
Wat zijn je fuses (device flags in mikroBasic)?
Henry S.
Moderator
Confucius says chà bù duo. Deze post is niet door ChatGPT gegenereerd. De 2019 CO labvoeding.
Op 14 maart 2007 15:04:27 schreef woutermans:
niemand ??
Ophouden met kicken aub!
