Sida 2 av 2

Re: Styra blinkhastigh. med analog ingång. (Sodjan fixade det.)

Postat: 21 juni 2010, 20:25:52
av bos
Det där var ju ingen bra liknelse. Snarare är det så att du som kock vill ha färdiglagade rätter så att du i efterhand kan ändra ingredienserna. Råvarorna finns ju alltid - frågan är hur man använder dem.

Re: Styra blinkhastigh. med analog ingång. (Sodjan fixade det.)

Postat: 21 juni 2010, 23:06:24
av Jörgen H
Jag är inte heller helt säker hur man kommer fram till att:
TRISB = 0x3F ' Pins RB7, RB6 are outputs

Finns det nån bra lathund för att komma överens med dessa saker?
Jag använder "Kalkylatorn" i Windows7
Sätt den i läge "Programmerare" (Alt+3)

Re: Styra blinkhastigh. med analog ingång. (Sodjan fixade det.)

Postat: 21 juni 2010, 23:43:20
av sodjan
Alltså, hur vet du/vi att kalkylatorn hjälper ?
Det framgår ju inte *vad* Jojje har för problem med just det där.
Det kan ju t.ex vara så att Jojje inte riktigt har hajat vad
TRIS-registren är till för, eller liknande, vad vet jag ?

Det hade ju varit bra om det hade framgått om det var
själva hex/binär omvandlingen som var problemet (och där
kan kalkylatorn kanske hjälpa) eller om det har något med
kopplingen mellan RB7/RB6 och TRIS registret i sig att göra
(och där hjälper kalkylatorn inte ett smack)...

Re: Styra blinkhastigh. med analog ingång. (Sodjan fixade det.)

Postat: 22 juni 2010, 00:12:44
av jojje
Vad just TRISx står för var klart, men att 0x3F stod för RB6 och RB7, det fattade jag också
eftersom det var i exempelkoden, men hur man såg det eller räknade ut det själv, det har ni lärt mig nu.

Det jag har lite svårt för fortfarande är skillnaden på, och när man ska/bör/måste använda typ
ANSEL, ADCON0, ADCON1, ANSELH osv. Jag får ta det pö om pö när dom dyker upp i stället.

Re: Styra blinkhastigh. med analog ingång. (Sodjan fixade det.)

Postat: 22 juni 2010, 00:21:20
av sodjan
Ja, en fråga av typen "vad är det-och-det till för ?" besvaras ju enklast
med "det står i databladet"... :-)

ANSEL (och ANSELH) är ju förkortningar av ANalog SELect (och High för "H").
Alltså register för att välja ("select") vilka pinnar på processorn som ska vara analoga
(till komparator eller ADC modulen) och vilka som ska vara vanliga digital I/O.

ADCONx är en förkortning av ANalog CONfiguration.
Alltså där man *konfigurerar* hur de analoga funktioner ska fungera, så att säga,
när man faktiskt tänker använda dom.

Och, som sagt, detaljerna finns i databladet... :-)

> och när man ska/bör/måste använda...

ANSEL registren måsta man i princip *ALLTID* ha med i sin kod.
Notera att alla pinnar som *kan* ha analoga funktioner alltid har det efter reset.
Alltså måste man via ANSEL/ANSELH se till att shifta de pinnar man vill använda
till digitala I/O pinnar, annars fungerar inte spciellt mycket... :-)

ADCONx behöver man inte bry sig om utom ifall man ska använda t.ex ADC modulen.

Re: Styra blinkhastigh. med analog ingång. (Sodjan fixade det.)

Postat: 22 juni 2010, 00:48:14
av jojje
Jag har exempelkod för tex 16F877/887, men måste använda en 16F88,
pga att jag har inget annat som passar. I 88'ans datablad finns tex inte
ANSELH med. Ska man då sätta en å en till digitalt värde eller finns det
nåt liknande ANSELH till den processorn?

ADCONx finns inte med alls, fast det är till ADC-modulen.
Inte undra på att man blir lite konfunderad, men det löser
sig väl till slut på nåt sätt. Bara att testa med och utan
så får man se vad som händer och fötter.

Klippt, utan mellanhänder, direkt från helpfilen till 16F887.

Kod: Markera allt

program ADC_on_LEDs
dim adc_rd as word

main:
    ANSEL  = 0x04           ' Configure AN2 pin as analog
    TRISA  = 0xFF           ' PORTA is input
    ANSELH = 0              ' Configure other AN pins as digital I/O
    TRISC  = 0x3F           ' Pins RC7, RC6 are outputs
    TRISB  = 0              ' PORTB is output

  while (TRUE)
    adc_rd = ADC_Read(2)    ' get ADC value from 2nd channel
    PORTB = adc_rd          ' display adc_rd[7..0]
    PORTC = Hi(adc_rd)      ' display adc_rd[9..8]
  wend
end.
Vi får stanna här så länge, så jag får smälta den
nyvunna kunskapen och skapa nya problem och frågor.

Re: Styra blinkhastigh. med analog ingång. (Sodjan fixade det.)

Postat: 22 juni 2010, 01:03:09
av sodjan
Nyare processor modeller har ofta ANSEL/ANSELH register där man kan hantera
varje analog pinne var för sig. Man kan alltså i princip ha vilken kombination
av analoga och digitala pinnar som helst. Jag tror att 887 är så.

Äldre processorer (sannolikt 877) hade register där man enbart kunde
välja mellan ett antal fasta kombinationer av analoga/digitala pinnar.
Man kan alltså inte styre varje pinne för sig oberoende av de andra.

Hur det är med varje individuell PIC model får man kolla i respektive databladet.

> ADCONx finns inte med alls, fast det är till ADC-modulen.

Ja, register behöver inte heta samma sak. Dock kan du vara säker
på att *om* det finns en ADC modul så finns det även register
för att hantera den ! Vad dom nu än heter...

> Klippt, utan mellanhänder, direkt från helpfilen till 16F887.

887 är nog av den typen där varje pinne styrs individuellt via ANSEL/ANSELH.

Re: Styra blinkhastigh. med analog ingång. (Sodjan fixade det.)

Postat: 22 juni 2010, 20:29:56
av ToPNoTCH
Enklare än så i detta fallet..
16F88 har bara 7 kanaler AD, så det behövs bara ANSEL för att styra dom.
ANSELH brukar dyka upp när du har mer än 8 kanaler för då får ju inteinställningen plats i ett filregister.

ADCON mosvaras av ADCON0 i 88'an

Som Sodjan brukar säga ...Allt står i databladet tog 5 sek att hitta :wink:

Re: Styra blinkhastigh. med analog ingång. (Sodjan fixade det.)

Postat: 22 juni 2010, 20:50:36
av jojje
Tar mig också 5 sekunder att hitta med sökfunktionen just dom sakerna.
Men, sen ska man läsa, förstå vad dom menar och koppla det med annat man läser.
Det tar inte 5 sekunder. Jag har hållt på med spektaklet i nån månad totaltid.
Av det har jag tyvärr inte använt mera än en bråkdel till att läsa databladen.
Hade det varit samma uppbyggnad på alla PIC'ar kanske det funnits en chans
att få med sig alla trivialiteter, men... :roll:

Re: Styra blinkhastigh. med analog ingång. (Sodjan fixade det.)

Postat: 22 juni 2010, 21:14:29
av sodjan
> Av det har jag tyvärr inte använt mera än en bråkdel till att läsa databladen.

Ja då har du ju hittat "felet"... :-)

Re: Styra blinkhastigh. med analog ingång. (Sodjan fixade det.)

Postat: 22 juni 2010, 21:32:53
av jojje
Jepp, sen är det en prioriteringssak vad man ska/måste gå igenom först,
och vad som är viktigare än annat. Sen ska det vara lite roligt också. :D
Läsa datablad är inte lika roligt som exempelkoder, det måste jag erkänna. :vissla:

Re: Styra blinkhastigh. med analog ingång. (Sodjan fixade det.)

Postat: 22 juni 2010, 21:44:23
av ToPNoTCH
De'e lungt jojje..

Det är därför jag är så snäll och slår upp grejorna åt dig.

Det räcker med ett tack :badgrin:

Re: Styra blinkhastigh. med analog ingång. (Sodjan fixade det.)

Postat: 22 juni 2010, 21:57:35
av jojje
Jag klarar hitta, så det behöver du inte oroa dig för.
Det är fatta innebörden du bör koncentrera dig om
att få in i min trånga skalle. :wink: :D