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