2
我在C編譯器中使用了微芯片版本v8.63。向左移一次並獲得價值表
下面這段代碼,我想'轉移一次值1206420333240d',我知道1位進來的進位寄存器。但我不知道如何在彙編語言中爲pic18F4550檢索這個值。 我的問題是,如何將圖18F4550的彙編程序轉換一次,並獲得進位值?
包含整個項目。
unsigned int rood = 1206420333240;
void main (void)
{
//int rood[] = {0,0,1,0,1,0,1,0,1,0,1,1,1,0,0,0,0,1,1,0,1,0,1,0,1,0,0,0,1,1,0,1,1,1,0,1,0,1,0,1,0,0,0,1,1};
TRISD = 0x00; // PORTD als output
TRISB = 0b00110000; // RB4 en RB5 als input
TRISA = 0x00; // RA output
RCONbits.IPEN = 0; // prioriteit disable
INTCONbits.GIE = 1; // enable interrupt
INTCONbits.RBIE = 1; // interrupt portB on
while(1)
{
_asm sleep _endasm
}
}
#pragma interrupt ISR
void ISR (void)
{
if (INTCONbits.RBIF==1)
{
if(PORTBbits.RB5==0) // S3 pressed ?
{
int i = 0;
int b;
do {
// Try to shift left (SHF) and get value in carry.
_asm
mov EAX, 1206420333240d
_endasm
//LATAbits.LATA2 = rood << 1;
//LATDbits.LATD1 ^= 1;
//do-while for the frequentie (1500 is de freq)
b = 0;
do {
b++;
}while(b <= 2000);
i++;
}while(sizeof(rood) <= 50);
//LATDbits.LATD1 ^= 1; // D2 togglen
}
}
INTCONbits.RBIF = 0;
}
在實踐中可能無法正常工作,因爲我用所有的PIC C編譯器是完全的廢話。 – 2011-05-17 06:33:50
我相信你的判斷......我會毫不猶豫地承認,我所做的唯一的PIC18開發是彙編程序,所以我不完全確定c能在這裏工作多好。 – 2011-05-17 06:54:23