Sida 1 av 2
när PicBasic inte räcker till
Postat: 4 maj 2007, 13:15:25
av tusse
Nu måste jag anlita experterna när PicBasic inte räcker till.
Krets: PIC-16F628
Jo jag har tittat i data bladet till kretsen men blev inte mycket klokare för det
Vill kunna göra en analog insignal på PORTA.3 i nivå med +0 till +1 volt till ett digitalt värde och spara det i variabel Var, upplösning inte kritiskt.
Jag vet vad jag vill men kan inte.
Har förstått att
TRISA=00010000 För att berätta vilken port som ska vara inport.
CMCON ska sättas för att något ska hända
VRCON ska sättas för att få den interna spänningsreferensen.
Och det är inte mycket men om ni kan förklara så kan hända att det fastnar något i någon hjärncell hos mig.
Fråga om ni vill veta något mer.
Ja det är en Lambdasond jag ska läsa av.
Postat: 4 maj 2007, 13:37:29
av sodjan
628(A) saknar ADC omvandlare.
Kolla istället på t.ex 16F88 eller någon annan modell med ADC...
Postat: 4 maj 2007, 14:07:03
av tusse
Det vor ju en bra lösning med 16F88 eller liknande, men det finns ju en comparator och en spännings referens i 628 an, vadför skulle man inte kunna använda dom?
Det skulle kunna fungera om jag kunde läsa av ett tröskelvärde på +0,6 volt och bara flagga av det på något vis.
Postat: 4 maj 2007, 14:21:41
av Marta
Komparatorns spänningsreferens är så grov att det inte duger till att göra en SA i mjukvara. Tror inte ens Du får 5 bitars upplösning på det sättet. Är det bara til/från vid en viss spämning Du vill ha så kan Du givetvis använda komparatorn. Välj en referensspänning om passar, så hög som möjligt med tanke på insignalen för minimum störningrar, och skala insignalen med en spänningsdelare. Tänk på att 5V in inte får överskridas.
Postat: 4 maj 2007, 14:32:17
av tusse
Fem bitar (31) nivåer skulle räcka mer än väl. En Till/från funtion skulle fungera men hur gör man? Det rör sig om 0 till+1 Volt där jag vill ha en variabel som indikerar 0,6 volt.
Postat: 4 maj 2007, 15:04:10
av H.O
Hej,
Ett alternativ är att använda CCP-modulen i PWM-mode och sedan "svepa" från 0 till 100%, lågpassfiltrera och köra in på komparatorns ena ingång.
Typ:
i var byte
For i = 0 o 255
HPWM 1, i
Pause 5
If myComparator = 1 then
yadda yadda
Endif
Next i
/H.O
Postat: 4 maj 2007, 17:30:03
av sodjan
> En Till/från funtion skulle fungera men hur gör man?
Hur man gör *vadå* ?
Hur du hanterar komparatorn står i databladet.
Vad utöver det är det du undrar över ?
Den externa kopplingen ?
Eller är det kanske något i databladet som är oklart ?
Och i så fall, *vad* är oklart ?
Väldigt svårt att svara när man inte vet vad problemet är...
Postat: 5 maj 2007, 10:01:36
av vfr
Om jag inte minns helt fel sedan jag använde komparatorn i 628:an, så har spänningsreferensen till komparatorn 16 steg. Matar man den då med 5V så väljer du ut en lämplig mellannivå av dom 16 där du vill ha omslagsnivån. Denna skall sedan in på en av komparatorerna tillsammans med den signal du vill jämföra. Titta i databladet på olika uppsättningar av komparatorerna tillsammans med referensen.
Vill du sedan ha flera olika jämförelsenivåer, så får man manuellt byta jämförelsevärde i referenskedjan mellan jämförelserna.
Postat: 6 maj 2007, 18:20:19
av tusse
Sodjan>>"Och i så fall, *vad* är oklart ?" Det är på engelska.
Postat: 6 maj 2007, 18:24:51
av Icecap
Det är lite elakt att säga men ändå: engelsk är ett måste i datorvärlden.
Postat: 6 maj 2007, 18:30:02
av Micke_s
Japanska kan man klara sig långt på också

(kan ej själv)
Postat: 6 maj 2007, 18:30:40
av tusse
Så var det inte när jag gick i yrkesskolan för 35 år sedan. Brukar få så bra hjälp här så att börja plugga engelska känns väldigt långt bort.
Postat: 6 maj 2007, 18:36:07
av sodjan
> Sodjan>>"Och i så fall, *vad* är oklart ?" Det är på engelska.
Jo, *det* vet jag...
Menar du att det är *så* oklart att det inte ens går att
peka på något speciellt ?
Men, den engelska som förekommer i datablad för (t.ex) PIC
är ju endå en ganska begränsad del av engelskan, det är ju
knappast något skönlitterärt verk direkt. Alla tekniska uttryck
används ju i princip rakt av även i "teknisk svenska".
Skit samma igentligen, det är helt upp till dig att bjuda till
lite om du vill ha hjälp...
Hm, jag får kanske damma av min gamla idé om en datablads
"walk-through" där jag tänkt mig en genomgång av ett typiskt
datablad kapitel för kapitel med förklaring av tekniska termer
och andra delar som många vanligtsvis fastnar på. Kanske vore
bättre använd tid än att sita här på forumet...

Postat: 6 maj 2007, 19:36:00
av tusse
Låter som en bra idé. Det är ofta svårt är läs databladet och det är nog inte bara jag som tycker mycket är svårt att förstå, inte bara språket.
Om vi återgår till frågan, vet inte om jag vågar men, så kan jag säga att om jag fattat rätt så ska CMCON sättas 01001010 Där bit 0-2 talar om att det är den interna ref jag ska använda, bit tre port A3, bit 6 komparator talar om villkoren.
VRCON 10100010 Bit 0-3 talar om att det är ca 0,6 volt, bit 6 att jag inte vill ha det ut på RA2 och bit 7 är jag osäker på ,men den borde vara på..
Om jag nu fattat rätt så ska det på port A.3 sättas en flagga i kretsen när jag överskrider 0,6 vol. frågan är hur jag hittar den.
Postat: 6 maj 2007, 20:27:44
av v-g
Du har lite fel angående registren:
CMCON: Bit<7:6> är Svaren du får från komparatorerna. Anser för övrigt att du om du bara skall ha ETT input bör köra BIT 2:0 som "101" Då använder du bara en av komparatorerna(nummer 2).
VRCON: Om du kör på 5v så får du c:a 0,417 volt med den inställningen, "11" skulle ge 0,625 volt. Se bifogad tabell nedan.
BIT 7 är ON för hela modulen, rätt viktig
BIT 6 är On för output på pinne RA2 (kan vara smidigt om man vill mäta att man har rätt nivå med multimeter)
"Svaret" du få från komparatorn kommer i CMCON<7:6> Detta såklart efter Response time är avklarat (gäller vid byte av Vref)
Glöm ej heller att TRISB måste vara rätt konfigurerat.
