Bad expression hataları

Başlatan orcntns, 20 Ekim 2014, 20:24:37

orcntns

Arkadaşlar aşağıdaki kodu derlediğim zaman bir çok Bad expression ve redefinition of label frekans tarzı sorunlar alıyorum yardım edebilirmisiniz.

@ DEVICE pic16F628
@ DEVICE pic16F628, WDT_off
@ DEVICE pic16F628, PWRT_ON
@ DEVICE pic16F628, PROTECT_OFF
@ DEVICE pic16F628, MCLR_ON
@ DEVICE pic16F628, HS_OSC
DEFINE  OSC  10
DEFINE  LCD_DREG     PORTA
DEFINE  LCD_DBIT     0
DEFINE  LCD_RSREG    PORTB
DEFINE  LCD_RSBIT    2
define  LCD_RWREG    PORTB
DEFINE  LCD_RWBIT    1
DEFINE  LCD_EREG     PORTB
DEFINE  LCD_EBIT     0
DEFINE  LCD_BITS     4
DEFINE  LCD_LINES    2
DEFINE LCD_COMMANDUS 4000
DEFINE LCD_DATAUS 250
TRISA=0
TRISB=%11111000
low PORTB.1

Frekans     var word
FrekansL    var Frekans.byte0
FrekansH    var Frekans.byte1
sure     VAR WORD
sureL    var SURE.Byte0
sureH    var SURE.Byte1
TOPLAM   var  word
sayac    var  word
counter  var  byte
HAS      VAR  BYTE
I        var  byte
X        var  bit
Z        VAR  BIT
ilk      var  bit
SEC      VAR  PORTB.7

Z=0
CMCON=7
has=0:ilk=0
lcdout $FE,1
lcdout "***EROL ERDAL***"
lcdout $FE,$C0,"**FREKANSMETRE**": PAUSE 300

'*******************************  FREKANSMETRE***********************************
START:
'         gosub olc
'         gosub modsec
'         lcdout $FE,1,"fre:",#frekans," mod=",#has,"S=",#SEC
'         pause 500:goto start
ATLA:    IF SEC=1 THEN
HAS=4:goto birinci
else
gosub MODSEC
endif
pause 200

Birinci: SELECT CASE has
'———-bölücüsüz ölçüm— Mode=0——-0 Hz - 65 KHz.———————-
CASE 0
gosub binms
Lcdout $FE,$80,"0-65 KHz : MOD=",#has
if frekans<1000 then
Lcdout $FE,$C0,"Fre:",#frekans," Hz        "
gosub tus
goto ATLA
endif
sayac=frekans/1000:Toplam=(frekans//1000)
Lcdout $FE,$80,"0-65 KHz : MOD=",#has
Lcdout $FE,$C0,"Fre:",#sayac,".",dec3 Toplam," Hz    "
GOSUB TUS
' pause 500
goto ATLA
'——-bölücüsüz ölçümler —Mode=1——-65 KHz.- 650 KHz—————–

CASE 1
gosub yuzms
Sayac=frekans/100:Toplam=(frekans//100)
Lcdout $FE,$80,"65-650KHz: MOD=",DEC has
Lcdout $FE,$C0,"Fre:",#Sayac,",",#Toplam," KHz  "
GOSUB TUS
' pause 500
GOTO ATLA

'——BÖLÜCÜSÜZ ÖLÇÜMLER—-Mode=2——650 KHz - 6,5 MHz————–
CASE 2
gosub onms
sayac=frekans/10:Toplam=(frekans//10)
Lcdout $FE,$80,"065-6 MHz: MOD=",#has
if sayac<1000 then
Lcdout $FE,$C0,"Fre:",#sayac,",",dec3(Toplam*100),""KHz  "
gosub tus:goto ATLA
endif
toplam=sayac/1000
lcdout $fe,$C0,"Fre:",#toplam,",",#(sayac//1000)," MHz    "
gosub tus
goto ATLA

'——-BÖLÜCÜSÜZ ÖLÇÜMLER——Mode=3——6,5 MHz - 30 MHz————
CASE 3
gosub Birms
sayac=frekans
toplam=sayac/1000
Lcdout $FE,$80,"6,5-50MHz: MOD=",#has
lcdout $fe,$C0,"Fre:",#toplam,",",#(sayac//1000)," MHz    "
gosub tus
'         pause 500
goto ATLA

'——BÖLÜCÜ İLE ÖLÇME BÖLÜMÜ—-Mode=4——30 mhZ - 1200 mhZ——–
case 4
gosub birms
sayac=Frekans**64
frekans=div32 10
sayac=frekans/100:Toplam=(frekans//100)
Lcdout $FE,$80,"50 MHz>:   MOD=",#has
Lcdout $FE,$C0,"Fre:",#Sayac,",",dec3 (Toplam*10)," MHz   "
gosub tus
'         pause 500
Goto ATLA

'————modların sonu ——————————————–
case 5
HAS=0:GOTO START
END SELECT
Z=0
GOTO START

TUS:      if PortB.3=1 then
IF Z=1 THEN CIK
has=has+1: PAUSE 1
IF has=5 THEN has=0
Z=1
RETURN
ENDIF
Z=0
CIK:      RETURN
'———————MODSEC——————————–
MODSEC:  'pause 5:gosub  olc':return
pause 100
'         if frekans>340 then
'           has=4:RETURN
'         endif
'         if(frekans>43)and(frekans<217)then
'           has=3:RETURN
'         endif
gosub birms
if Frekans<66 then has=0
if frekans>65 and frekans<651 then has=1
if frekans>650 and frekans<6501 then has=2
if Frekans>6500 and Frekans<32001 then Has=3
'         IF frekans >50000 THEN HAS=4
return

OLC:
asm
movlw 0×01
movwf _SureL
movlw 0×03
movwf _SureH
delay_0
btfss  portb,6
goto   tamamolc
decfsz _SureL, f
goto $+3
decfsz _SureH, f
goto Delay_0
Goto    son
tamamolc
call   zaman
movlw 0×01
movwf _SureL
movlw 0×01
movwf _SureH
Delay_1
decfsz _SureL, f
goto $+2
decfsz _SureH, f
goto Delay_1
goto $+1
Goto    son
zaman
bcf  STATUS,RP0
bcf  STATUS,RP1
clrf TMR1L
clrf TMR1H
movlw  7
movwf  T1CON
return
endasm
Binms:
ASM
movlw 0×20    ;19 idi
movwf _SureL
movlw 0×80    ;74 idi
movwf _SureH
movlw 0×06
movwf _Counter
delay_2
btfsc   portb,6
goto tamambin
decfsz _SureL, f
goto delay_2
decfsz _SureH, f
goto $+2
decfsz _Counter, f
goto Delay_2
goto son
tamambin
call    zaman
movlw 0×19    ;19 idi
movwf _SureL
movlw 0×74    ;74 idi
movwf _SureH
movlw 0×06
movwf _Counter
Delay_3
decfsz _SureL, f
goto $+2
decfsz _SureH, f
goto $+2
decfsz _Counter, f
goto Delay_3
Goto son
endasm

Yuzms:
ASM
movlw 0×4e       ;4e idi
movwf _SureL
movlw 0xCa       ;c4 idi
movwf _SureH
Delay_4
btfsc   portb,6
goto tamamyuz
decfsz _SureL, f
goto delay_4
decfsz _SureH, f
goto $+2
goto son
tamamyuz
movlw 0×4f       ;4e idi
movwf _SureL
movlw 0xC4       ;c4 idi
movwf _SureH
call   zaman

Delay_5
decfsz _SureL, f
goto $+2
decfsz _SureH, f
goto Delay_5
goto $+1
Goto    Son
endasm

Onms:
asm
movlw 0×86
movwf _SureL
movlw 0×20
movwf _SureH
Delay_6
btfsc   portb,6
goto   tamamon
decfsz _SureL, f
goto delay_6
decfsz _SureH, f
goto $+2
goto   son
Tamamon
movlw 0×87
movwf _SureL
movlw 0×14
movwf _SureH
call    zaman
Delay_7
decfsz _SureL, f
goto $+2
decfsz _SureH, f
goto Delay_7
goto $+1
goto   son
endasm
Birms:
ASM
movlw 0xf2
movwf _SureL
movlw 0×04
movwf _SureH
Delay_8
btfsc   portb,6
goto    tamambir
decfsz _SureL, f
goto delay_8
decfsz _SureH, f
goto $+2
goto son
tamambir
call     zaman
movlw 0xf2
movwf _SureL
movlw 0×02
movwf _SureH
Delay_9
decfsz _SureL, f
goto $+2
decfsz _SureH, f
goto Delay_9
goto $+1
son
nop
movlw  6
movwf  T1CON
movf TMR1L,0
movwf _FrekansL
movf TMR1H,0
movwf _FrekansH
endasm
RETURN
END



ete

Nasıl yapabildin bilmiyorum ama programda kullanılan bazı özel karekterleri alakasız olanlarla değiştirmişsin.
Program üzerinde çalışacak ve değişiklik yapacaksan mutlaka MCS ile çalışmalı sonuçta derlemeyide orada yapmalısın.
Enfazla değişiklik;
' yerine   ` kullanarak yapılmış . ASM kısmında x yerine garip bir çarpma işareti (0x01 yerine 0×01 gelmiş.) gelmiş ama karekter uyumu yok. Aynı gibi gözükmekle birlikte MCS ekranında farklı oldukları daha kolay görülebiliyor.

Sorun bundan ibaret.

Bana kalırsa MCS içinde programın orjinalini tekrar yükle ne değiştireceksen orada değiştir ve derlemeyide orada yap.

Ete

F®T

shift ve 2 nolu tuşa basıp üst tırnakları düzelt.tınaklar sağa yatık olacak sen nasıl olmuş ise sola yatırmışın.çift tırnaklardada sorun olanlar var iyi incele.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Powered by EzPortal