Sida 1 av 2

Hur tolka adc ingångar på vissa pic

Postat: 23 augusti 2019, 14:45:56
av newbadboy
Vissa pic anger sina adc kanaler tex 0-10. Med kompilatorn jag använder hade jag då skrivit tex ADC_Read(4), för att läsa kanal 4

Men vissa PICs anger sina kanaler tex.

ANA1
ANA2
ANA3

ANB1
ANB2
ANA3

Då kan jag inte skriva ADC_Read(3) för det är orimligt, sedan godkänner inte kompilatorn detta heller om jag valt en sådan krets.
Den godkänner inte heller ADCA3_Read() som borde vara rimligt.

Tankar kring detta?

Re: Hur tolka adc ingångar på vissa pic

Postat: 23 augusti 2019, 14:52:17
av Shimonu
Vill du utveckla vad du menar med rimligt och orimligt? Det finns väl beskrivit hur de används?

.

Re: Hur tolka adc ingångar på vissa pic

Postat: 23 augusti 2019, 15:00:36
av Icecap
Vilken kompilator? Ganska essentiellt vill jag påstå.

Men du kan ju alltid kolla om inte du ska göra funktionen själv - på PIC är det ganska enkelt att välja vilken ingång som ska omvandlas och sedan är det bara att vänta på flaggan som är klar.

Men det är såklart inte så nära "låt någon annan göra jobbet" som vissa önskar.

Re: Hur tolka adc ingångar på vissa pic

Postat: 23 augusti 2019, 15:24:34
av newbadboy
MikroC

Orimligt för att jag bara anger kanal 3 och det borde då kunna vara både ANA3 och ANB3

Rimligt hade då varit att man i kompilatorn ange både bokstav och kanal tex ADCA_Read(3)

Re: Hur tolka adc ingångar på vissa pic

Postat: 23 augusti 2019, 15:32:25
av Magnus_K
Har du provat A3 inom parentesen?
Skriver dom inget i hjälp-filen om det?

Re: Hur tolka adc ingångar på vissa pic

Postat: 23 augusti 2019, 15:34:12
av Shimonu
Jag tänker att det inte vore orimligt med ADC_Read(ANA3) eller vad man nu vill ha.

Re: Hur tolka adc ingångar på vissa pic

Postat: 23 augusti 2019, 15:53:43
av sodjan
Det verkar som att frågan har något med numreringen att göra (eller?)

I vissa fall (gärna hårdvarunära) så kör man med t.ex. 0, 1, 2 och 3, mest för
att det är enkelt att mappa till "00", "01", "10" och "11" i något kontrollregister.

Sen så kan man ha en högra abstraktionsnivå där man kallar ADC ingångarna
för 1, 2, 3 och 4, mest för att det är enklare för oss "humans" att förstå.
Ingång "noll" kan låta lite underligt om man inte är van...

Sen är det implementerings detaljer som kan skilja mellan t.ex. olika
kompilatorer, om nu frågan har med *det* att göra...

Re: Hur tolka adc ingångar på vissa pic

Postat: 23 augusti 2019, 16:12:28
av newbadboy
Magnus_K skrev:Har du provat A3 inom parentesen?
Skriver dom inget i hjälp-filen om det?
Det enda som står är just ADC_read(). Ska prova a3

Re: Hur tolka adc ingångar på vissa pic

Postat: 23 augusti 2019, 16:13:27
av newbadboy
Shimonu skrev:Jag tänker att det inte vore orimligt med ADC_Read(ANA3) eller vad man nu vill ha.

Bra idé. Ska provas

Re: Hur tolka adc ingångar på vissa pic

Postat: 23 augusti 2019, 16:14:24
av newbadboy
sodjan skrev:Det verkar som att frågan har något med numreringen att göra (eller?)

I vissa fall (gärna hårdvarunära) så kör man med t.ex. 0, 1, 2 och 3, mest för
att det är enkelt att mappa till "00", "01", "10" och "11" i något kontrollregister.

Sen så kan man ha en högra abstraktionsnivå där man kallar ADC ingångarna
för 1, 2, 3 och 4, mest för att det är enklare för oss "humans" att förstå.
Ingång "noll" kan låta lite underligt om man inte är van...

Sen är det implementerings detaljer som kan skilja mellan t.ex. olika
kompilatorer, om nu frågan har med *det* att göra...
Jag skulle tro att du har i princip förstått min fråga.

Re: Hur tolka adc ingångar på vissa pic

Postat: 23 augusti 2019, 19:54:51
av TomasL
Eftersom du inte talar om vilka prollar det gäller, ej heller hur denna representation presenteras gissar jag att det är differentiella ingångar till AD-omvandlaren.
Alternativt är att det finns två AD-omvandlare med ett antal ingångar.

Skulle råda dig till att börja läsa databladen, för att förstå hur de är konstruerade, och hur man använder dem.
Du verkar inte, med avseende på tidigare inlägg, läsa databladen.

Re: Hur tolka adc ingångar på vissa pic

Postat: 23 augusti 2019, 20:10:45
av SeniorLemuren
Om du använder MikroC så har de ett bra forum där du förmodilgen får hjälp direkt.

Re: Hur tolka adc ingångar på vissa pic

Postat: 23 augusti 2019, 20:57:11
av newbadboy
TomasL skrev:Eftersom du inte talar om vilka prollar det gäller, ej heller hur denna representation presenteras gissar jag att det är differentiella ingångar till AD-omvandlaren.
Alternativt är att det finns två AD-omvandlare med ett antal ingångar.

Skulle råda dig till att börja läsa databladen, för att förstå hur de är konstruerade, och hur man använder dem.
Du verkar inte, med avseende på tidigare inlägg, läsa databladen.
Skönt att se att du förutsätter en massa. Jo jag har läst men inte fattat.

16f18346.

Jag har frågat på mikroe forumet också. Det verkar ev vara så att den listan där varje port är angiven under ADC sektionen så står det ett binärt tal. Den kan man då skriva in decimal ADC read funktionen. Ska försöka verifiera detta imorron.

Men varför i helvete ska de ange det så istället för att hålla sig till kanal 1 till 10 tex

Re: Hur tolka adc ingångar på vissa pic

Postat: 23 augusti 2019, 22:17:26
av sodjan
Ta det lite lugnt. Du borde ha nämnt processormodell från början.
Men nu vet vi det och det behövs inte rivas upp mer damm för det...

ADC kanalerna heter ANA0-5, ANB4-7 och ANC0-7 beroende på vilken pinne
man vill använda. Det finns inget som heter "kanal 1-10", var har du sett det?

Sen, hur du anger detta beror nog på utvecklingsmiljön du använder. Är det MikroC?
Hittar ingen manual just nu. Jag har en gammal men det är från tiden före denna
processor så jag vet inte om det är rellevant...

Det kan vara så att man anger CHS värdet direkt, 6 bitar så det kan vara 0-63 (decimalt).
Man det borde även finnas symboler ANA0, ANA1 upp till ANC7 (och även för de övriga
ADC källorna, FVR, DAC1 o.s.v.), men det kan jag inte kolla). Se kap 22.1 på sidan 244...

Re: Hur tolka adc ingångar på vissa pic

Postat: 23 augusti 2019, 23:09:31
av newbadboy
Japp mikroc.

Och japp det hade varit bra o ange modellen direkt.

1 till 10 hittade jag bara på som ett exempel.

Och jag misstänker också att det är chs värdet jag ska ange decimalt. Det är detta jag ska prova lite imorgon. Får återkomma när jag testat mer