Pic12f675... ADCON

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Pic12f675... ADCON

Inlägg av newbadboy »

Har startat denna tråden redan en gång. Men jag kan banne mig inte hitta den.

Det är iaf problem med att jag inte får rätt på en krets. Om jag har en etta på input så är output ändå noll. Jag är dessvärre inte helt hundra på hur man stänger av A/D'n. Har bortkommenterat delay för att jag inledningvis bara vill få rätt ingångarna dvs Input=1 => Output=1.



#define Input GPIO.F1 //GPIO döps om för tydligare kod
#define Output GPIO.F2
#define Reset GPIO.F0 //Blir en ingång som nollar programmet


void main(){

ADCON0.F0 = 0x00; // A/D av
CMCON = 0x07; // Komparator av
TRISIO.F2 = 0; // utgång
TRISIO.F1 = 1; //IN


ANSEL.F2 = 0; // Digital
ANSEL.F1 = 0; // Digital
ANSEL.F0 = 0; // Digital




while(1){

Output = 0; //säkerställer att utgång alltid är noll

if (Input){

// delay_ms(6000); //vänta 6sek innan larm
Output = 1;
// delay_ms(10000); //larma i 10sek
}
}
}
Senast redigerad av newbadboy 29 december 2006, 10:32:25, redigerad totalt 1 gång.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

Det verkar funka nu... ser ut som det berodde på kontaktfel
Användarvisningsbild
JimmyAndersson
Inlägg: 26586
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Att tråden försvann berodde på att vi nu ser forumet som ligger på den nya servern. Tyvärr är det en gammal backup som återställts, så därför saknas många trådar. Det står visserligen lite här och var att man inte skulle skriva något tills innan allt var klart.



Kul att det fungerar iallafall.

Men... kontaktfel? Är inte det en av de första grejjer man kollar när det är något som inte fungerar? :wink:
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Jimmyandersson gav mig förslaget med ANSEL mn det hjälpte tyvärr inte.

Spelar ingen roll, det var hur som helst ett fel i din kod.
Att du kanske har haft *andra* fel också ändrar ingenting...
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

Det har du rätt i chefen!!!, det var fel i koden men oxå kontaktfel.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

Nästa fråga.

Jag vill internt koppla MCLR så jag slipper ett extra motstånd. Ser i databladet att en nolla ger detta. Men hur är syntaxen för detta har provat bla CONFIG.F5=0 men det gick inte bra.

samma har jag gällande den interan oscillatorn. Ser i databladet att man ska ange 100 men jag förstår inte riktigt hur man exakt skall skriva detta.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Internal MCLR (och mycket annat) styrs av CONFIG bitarna.
Kolla databladet tillsammans med dokumentationen för
verktyget du använder !!

Du kan *INTE* sätta CONFIG bitarna i din kod.
Antingen i någon meny i verktyget, eller med
ett direktiv.

Se också till att du är fullt medveten av konsekvenserna
av att disabla MCLR !!
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

Om du använder den interna oscillatorn kan du få problem att programmera kretsen om du samtidigt använder intern mclr.
Användarvisningsbild
JimmyAndersson
Inlägg: 26586
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

"Se också till att du är fullt medveten av konsekvenserna
av att disabla MCLR !!"


Det tål att upprepas. :)
Själv kör jag *alltid* med extern MCLR.


När det gäller interna oscillatorn:
Gå in i menyn Projects -> Edit -> Device Flags och kryssa för "INTRC_OSC_NOCLKOUT".
MCLRE_ON ska vara ikryssad om du kör med *extern* MCLR. Det är lite dumt att MikroC/Basic använder den lösningen eftersom inställningarna kan försvinna om man har otur/är slarvig/har buggig mjukvara, men om man har koll på det (och särskillt då hur MCLRE är ställd) så fungerar det ganska bra. Personligen skulle jag visserligen hellre ha det i en fil som är lite mer synlig, men man kan inte få allt. :)
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Har man alltså inte *alls* möjlighet att lägga in CONFIG inställningarna
som ett direktiv (eller liknande) direkt i källkoden !?
Användarvisningsbild
JimmyAndersson
Inlägg: 26586
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Det finns tydligen:

(MikroC kör ju med samma "skal" så det är likadant där.)
"mikroBasic has several predefined flags for configuring hardware. These can be found in definition files (“defs” folder), specifying hardware settings for individual chips. SFR are sorted under categories: ___SFR (umbrella for all registers), ___CONFIG_OSC (oscillator), ___CONFIG_WDT (Watchdog timer), and ___CONFIG_BORPOR (brown–out reset and power–on–timer)."

Men det är allt som står om detta, åtminstone i hjälpfilen. Jag har inte fått det att fungera särskillt bra och har inte heller sett någon källkod som använder sig av detta. Läser man vidare i hjälpfilen så verkar det som att Mikroelektronika hellre pratar om ändringarna i menyn. Så, visst, möjligheten finns, men den verkar inte vara särskillt utvecklad. Frågan är även om det är inställningarna i källkoden eller i menyn som "gäller".
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

Ljuvligt, det var eg oscillatorn som jag helst ville köra intern i detta fallet. Lugnar mig nog med intern mclr tills jag läst på lite mer.

När jag har MCLR och den andra ikryssad fungerar inte min krets längre. Vad kan jag kolla upp?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> det var eg oscillatorn som jag helst ville köra intern i detta fallet.

Ja, det spar ju två pinnar som kan användas som I/O.
Det är nog absolut vanligast att man för 12F-serien med intosc
p.g.a av detta.

> Lugnar mig nog med intern mclr tills jag läst på lite mer.

Dessutom är det ju bara en pinne. Och som enbart kan vara ingång så
igentligen är det bara en halv pinne... :-)

> När jag har MCLR och den andra ikryssad

OK. Vad står det där du har "kryssat" ?
Och vad är "den andra" ????
D.v.s vad är det *igentligen* du har valt ?
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

Jag gick in i editorn som jimmy angav. Bockade för INTRC_OSC_NOCLKOUT och MCLRE_ON precis som skrev. Med dessa inställningar funkar inte kretsen. Som default är MCLRE_ON inte förbockad. Provade därför att ha end INTRC_OSC_NOCLKOUT förbockad men det hjälpte heller inte.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

OK.
Hur körde du när det *fungerade* ?
Skriv svar