Merhaba arkadaşlar elimde CCS ile yazılmış, 18F452 kullanılmış voltmetre kodları var. Ben bu PIC'i 16F877'e çevirmek istiyorum. Ama Assembler çarpma kısmında sorun yaşıyorum. CCS kullananlar fikir verirlerse sevinirim.
/////////////////////////////////////////////////////
#INT_AD
void ad_int(){
adc_ornek = MAKE16(ADRESH,ADRESL);
if (adc_ornek<512){ adc_ornek=512-adc_ornek; } else { adc_ornek=adc_ornek-512; }
//adc_ornek_kare = adc_ornek * adc_ornek;
ARG1L=MAKE8(adc_ornek,0);
ARG1H=MAKE8(adc_ornek,1);
#asm
MOVF ARG1L,W //bu kısım 18F452'nin datasheetin içinde var.
MULWF ARG1L
MOVFF 0xFF4,RES1
MOVFF 0xFF3,RES0
MOVF ARG1H,W
MULWF ARG1H
MOVFF 0xFF4,RES3
MOVFF 0xFF3,RES2
MOVF ARG1L,W
MULWF ARG1H
MOVF 0xFF3,W
ADDWF RES1,F
MOVF 0xFF4,W
ADDWFC RES2,F
MOVLW 0x00
ADDWFC RES3,F
MOVF ARG1H,W
MULWF ARG1L
MOVF 0xFF3,W
ADDWF RES1,F
MOVF 0xFF4,W
ADDWFC RES2,F
MOVLW 0x00
ADDWFC RES3,F
#endasm
adc_ornek_kare=MAKE32(RES3,RES2,RES1,RES0);
//////////////////////////////////////////////
AC voltmetreyse kodlarını ve devre şeklini gönderebilirmisin. Bende yapmak istiyorum da.
Kolay gelsin.