MPLAB IDE v7.21
Marek Pavlu
pavlu@hwg.cz
Pondělí Říjen 24 15:15:32 CEST 2005
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.
Další informace o konferenci Hw-list