MPLAB IDE v7.21
Pavel Prochazka.zde.cz
hacesoft@mujmail.cz
Pondělí Říjen 24 18:42:25 CEST 2005
pridal jsem nastaveni registru ADCON a uz to funguje! :-) Moooc diky.
Ale potom jsem cca 2 hodiny hledal v datasheetu proc tomu tak je. az
jsem prisel na stranku 130 a tam je to prehledne napsano. A to jsem
skousel nastavit hodotu 1 jako ze AN0 je digitalni a zbytek analog ale
tak to nefungovalo. Podle tabulky jsou tam ruzne pracovni mody. Zase
jsem o neco chytrejsi.
Pavel prochaka.zde.cz
Marek Pavlu napsal(a):
>Zdravim,
>
>Tak tam zrovna sedi na RA0:3 A/D převodník :).
>Takze si doi programu pred praci s I/O branou dejte toto:
>
>ADCON1 = 6;
>
>
>
>S pozdravem,
> Marek Pavlu
>
>// -----Original Message-----
>// From: hw-list-bounces@list.hw.cz [mailto:hw-list-bounces@list.hw.cz] On
>// Behalf Of Pavel Prochazka.zde.cz
>// Sent: Monday, October 24, 2005 9:13 AM
>// To: HW-news
>// Subject: Re: MPLAB IDE v7.21
>//
>// Aha to me nenapadlo. Je to PIC16F877A v pouzdre PCLL44
>//
>// Pavel Prochazka.zde.cz
>//
>//
>//
>// Marek Pavlu napsal(a):
>//
>// >Zdravim,
>// >
>// >
>// >No program vypada v poradku, ale myslim, ze jste zapomněl zminit, jaky
>// typ
>// >procesoru jste pouzil:). Totiž mnohe typy PIC mají na portech ruzne
>// další
>// >funkcni bloky a často jsou implicitne po startu zapnuty, takze
>// digitalni I/O
>// >brana se z nich teprve musí udelat.
>// >
>// >Trebas 16F628, 16F627, 12F675, ...
>// >Tohle je jen par typu, které maji nohy jako analogove komparatory nebo
>// A/D
>// >prevodník. Tak dejste vedet, jaky typ a urcite se něco vymysli:).
>// >
>// >
>// >
>// >// #define PORTBIT(adr, bit) ((unsigned)(&adr)*8+(bit))
>// >// static bit button @ PORTBIT(PORTA, 0);
>// >
>// >Tyhle dva radky jsou trosku nebo spis uplne mimo misu ANSI C:).
>// >Cele je to o tom, jak PICC pracuje s jednotlivym bitem na urovni
>// syntaxe,
>// >pricemz v ANSI C nemá "bit" co pohledavat:).
>// >
>// >Funguje to tak, ze mate nejakou sadu registru a chcete u konkretniho
>// >registru pouzivat paty bit.
>// >
>// >Tak kompiler si vezme adresu toho registru vzhledem k pocatku registru.
>
>// Coz
>// >je ta magicka formule:
>// >
>// >(unsigned)(&adr)
>// >
>// >v prvnim radku. No ted kdyz to vynásobíte osmi, tak simuzete
>// představit, ze
>// >kompiler jako by chape pole registru jako bitove pole a ten nas registr
>
>// >zacina nultym bitem prave na pozici udavane cislem:
>// >
>// >(unsigned)(&adr)
>// >
>// >Ted když chcete paty bit, tak k tomu prictete tu petku a kompiler
>// jakoby se
>// >posunul v bitove adresovatelne pameti na danou pozici daneho bitu.
>// >
>// >Ve skutecnosti to cele je jen konvence a kompiler takto nepracuje, to
>// je jen
>// >"jakasi" nazorna konstrukce v syntaxi PICC, aby tomu bylo lepe rozumet
>// a
>// >
>// > dalo se pouzivat i typ bit.
>// >
>// >Na urovni asm po kompilaci se pracuje primo s požadovaným registrem a
>// zadne
>// >posuny v bitove pameti se nerealizuji. Predpokladam, ze jednim z duvodu
>
>// >pridani typu bit bylo zlepseni optimalizace kodu.
>// >
>// >Kdyz se bitove operace deji primo pomoci operaci and, or, xor, tak ne
>// vzdy
>// >to je pro slozite operace pro kompiler unosne. Treba pitome zapsani
>// nuly
>// >nebo jednicky jeste není velky problem a dobře se optimalizuje, ale
>// pokud
>// >hodlate v jednom kroku udelat několik bitovych operaci, tak se to bude
>// na
>// >jednom radku hemzit logickými funkcemi...
>// >
>// >Snad jsem to rekl srozumitelne :).
>// >
>// >
>// >
>// >S pozdravem,
>// > Marek Pavlu
>// >
>// >//
>// >// #define PORTBIT(adr, bit) ((unsigned)(&adr)*8+(bit))
>// >// static bit button @ PORTBIT(PORTA, 0);
>// >// #define time 1
>// >// main(void)
>// >// {
>// >// unsigned i;
>// >// unsigned char j;
>// >// TRISA = 1; /* bit 0 jako vstup */
>// >// TRISB = 0; /* veschno ven */
>// >// j = 0;
>// >// for(;;) {
>// >// PORTB = 0x00; /* ->0 */
>// >// for(i = time ; --i ;)
>// >// continue;
>// >// PORTB = j; /* set out ->j */
>// >// for(i = time ; --i ;)
>// >// continue;
>// >// if(button == 1){
>// >// j++;
>// >// }
>// >// }
>// >// }
>// >//
>// >// Jedine cemu dokonale nerozumim jsou prvni dva radky, ten prvni me
>// nic
>// >// nerika ale ten druhy je nejaka definice jednoho bitu na promennou.
>// >// Puvodne jeste tam bylo jako prvni prikaz static ale to se me
>// nezdalo a
>// >// tak jsem to umazl. Budu rad za kazdou pomoc...
>// >// A jeste radky s prikazem for puvodne vypadali takto: for(i = 1600 ;
>
>// --i
>// >// ;) ale pro krokovani jsem to upravil.
>// >//
>// >// Pavel Prochazka.zde.cz
>// >//
>// >//
>// >// **
>// >// Pavel Prochazka.zde.cz napsal(a):
>// >//
>// >// >Dobry den,
>// >// >prave jsem stahnul MPLAB IDE v7.21 a HI-TECH PICC kompiler pro
>// cecko.
>// >// >Nějaký příklad jsem už našel abych si mohl vyzkoušet jak to
>// všechno
>// >// >funguje. Kod se přeloží, akorát jsem nepřišel na to jak přeložené
>// cecko
>// >
>// >// >do asm zobrazit, jinak než že se podivám na hdd a prohlidnu si
>// >// výsledek.
>// >// >uvítal bych kdyby se preklad ukazal v MPLABu vedle kodu v cecku
>// abych
>// >// >vedel jak co přeložil.
>// >// >Po přeložení jsem si chtel vyškoušet simulaci. Kod bez problému
>// >// >krokuji. Ale nemohu za boha přijít na to jak menit hodnoty na
>// potrech
>// >// >IO. Aby program reagoval na podnety. A vubec celkove abych mel
>// přehled
>// >// o
>// >// >registrech a podobne.
>// >// >Poradi nekdo?
>// >// >
>// >// >
>// >// >Pavel Prochazka.zde.cz
>// >// >
>// >// >
>// >// >_______________________________________________
>// >// >HW-list mailing list - sponsored by www.HW.cz
>// >// >Hw-list@list.hw.cz
>// >// >http://list.hw.cz/mailman/listinfo/hw-list
>// >// >
>// >// >
>// >// >
>// >// >
>// >// >
>// >// >
>// >// >
>// >// _______________________________________________
>// >// HW-list mailing list - sponsored by www.HW.cz
>// >// Hw-list@list.hw.cz
>// >// http://list.hw.cz/mailman/listinfo/hw-list
>// >
>// >
>// >
>// > _____
>// >
>// >avast! Antivirus <http://www.avast.com> : Odchozi zprava cista.
>// >
>// >
>// >Virova databaze (VPS): 0542-5, 21.10.2005
>// >Testovano: 24.10.2005 0:34:27
>// >avast! - copyright (c) 2000-2003 ALWIL Software.
>// >
>// >
>// >
>// >_______________________________________________
>// >HW-list mailing list - sponsored by www.HW.cz
>// >Hw-list@list.hw.cz
>// >http://list.hw.cz/mailman/listinfo/hw-list
>// >
>// >
>// >
>// >
>// >
>// >
>// >
>// _______________________________________________
>// HW-list mailing list - sponsored by www.HW.cz
>// Hw-list@list.hw.cz
>// http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
> _____
>
>avast! Antivirus <http://www.avast.com> : Odchozi zprava cista.
>
>
>Virova databaze (VPS): 0543-0, 24.10.2005
>Testovano: 24.10.2005 15:15:32
>avast! - copyright (c) 2000-2003 ALWIL Software.
>
>
>
>_______________________________________________
>HW-list mailing list - sponsored by www.HW.cz
>Hw-list@list.hw.cz
>http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
>
>
>
>
Další informace o konferenci Hw-list