Cecko pro PICe
Marek Pavlu
pavlu@hwg.cz
Úterý Říjen 25 21:47:15 CEST 2005
Zdravim,
Panenko skakava, co porad mate s tim ASM? :))))
Predne doporucuji se podivat do adresare include na Vas typ MCU a jeho
hlavickovy soubor.
Snad vsechnty hlavicky obsahuji toto:
/* PORTA bits */
static volatile bit RA5 @ (unsigned)&PORTA*8+5;
static volatile bit RA4 @ (unsigned)&PORTA*8+4;
static volatile bit RA3 @ (unsigned)&PORTA*8+3;
static volatile bit RA2 @ (unsigned)&PORTA*8+2;
static volatile bit RA1 @ (unsigned)&PORTA*8+1;
static volatile bit RA0 @ (unsigned)&PORTA*8+0;
/* STATUS bits */
static volatile bit IRP @ (unsigned)&STATUS*8+7;
static volatile bit RP1 @ (unsigned)&STATUS*8+6;
static volatile bit RP0 @ (unsigned)&STATUS*8+5;
static volatile bit TO @ (unsigned)&STATUS*8+4;
static volatile bit PD @ (unsigned)&STATUS*8+3;
static volatile bit ZERO @ (unsigned)&STATUS*8+2;
static volatile bit DC @ (unsigned)&STATUS*8+1;
static volatile bit CARRY @ (unsigned)&STATUS*8+0;
Každý bit, ktery je Microchipem zdokumentovany pro dany typ MCU je takto u
PICC kompileru zapsan v hlavicce.
No a to znamena, ze kdyz chcete něco precist z PORTA bit jedna a nacpat do
bitu dva, tak staci tato extremne jednoducha konstrukce:
RA2 = RA1; //To je vse! :).
Není to Cecko pohodlnejsi nez asm?
A to co chcete Vy lze pak zapsat takto:
// Je potreba skopirovat BIT4 registru data na port RB1
// Je potreba skopirovat BIT5 registru data na port RB2
// Je potreba skopirovat BIT6 registru data na port RB4
// Je potreba skopirovat BIT7 registru data na port RB5
//Timto si vytvorite bitove promenne, ktere jsou ulozeny v data
unsigned char Data;
static volatile bit Data4 @ (unsigned)&PORTA*8+4;
static volatile bit Data5 @ (unsigned)&PORTA*8+5;
static volatile bit Data6 @ (unsigned)&PORTA*8+6;
static volatile bit Data7 @ (unsigned)&PORTA*8+7;
void zapis(void)
{
RB1 = Data4;
RB2 = Data5;
RB4 = Data6;
RB5 = Data7;
}
No a to je vse:).
Akorat v te Vasi funkci je ještě zbytecne pridano "return;", to ttam byt
nemusi, ledaze si chcete dat return ještě red dokončením cele funkce a nebo
podobne...
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: Tuesday, October 25, 2005 8:00 PM
// To: HW-news
// Subject: Re: Cecko pro PICe
//
//
// Dobry den,
// mam dalsi dotazek na ceckare pro PIC.
//
// Jak rozumne pripisu do decka nasledujici asm kod?
// Nemohl jsem nic rozumneho vykoumat, bud to bylo silene dlouhe nebo se to
// nechtelo prelozit. skousel jsem na to jit pres strukturu, ale to se me
// nepovedlo.
// Je potreba skopirovat BIT4 registru data na port RB1
// Je potreba skopirovat BIT5 registru data na port RB2
// Je potreba skopirovat BIT6 registru data na port RB4
// Je potreba skopirovat BIT7 registru data na port RB5
//
//
// void zapis_w(void){
// //zkopirovat 4 az 7 bity z registru DATA na porty B.
// //RB1 ...DB4 ... bit4 registru data
// //RB2 ...DB5 ... bit5 registru data
// //RB4 ...DB6 ... bit6 registru data
// //RB5 ...DB7 ... bit7 registru data
// #asm
// bcf _PORTB,1
// bcf _PORTB,2
// bcf _PORTB,4
// bcf _PORTB,5
// btfss _data,4
// bsf _PORTB,1
// btfss _data,5
// bsf _PORTB,2
// btfss _data,6
// bsf _PORTB,4
// btfss _data,7
// bsf _PORTB,5
// #endasm
// return;
// }
//
// >
// >
// _______________________________________________
// 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-1, 25.10.2005
Testovano: 25.10.2005 21:47:15
avast! - copyright (c) 2000-2003 ALWIL Software.
Další informace o konferenci Hw-list