BU KOD DERLEMEDE NEDEN HATA VERİYOR OLABİLİR?

Başlatan sozkarabacak, 24 Mart 2010, 16:35:43

sozkarabacak

SELAMLAR,
Aşağıdaki kodu Proton dilinden PİCBASİC diline çevirmeye çalıştım. Son noktaya geldim dedim ama o hatayı bir türlü gideremedim.Derleme yaparken ADRES VAR BYTE kısmında bir hata oluşuyor acaba neden olabilir?
'---------------------------PIC Ayarları------------------------ '
@ DEVICE pic16F628A                                                    
@ DEVICE pic16F628A, WDT_OFF              
@ DEVICE pic16F628A, PWRT_ON 
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT              
@ DEVICE pic16F628A, PROTECT_ON                                 '
'---------------------------LCD Ayarları------------------------'
DEFINE LCD_DTPIN PORTB.4                                        '
DEFINE LCD_ENPIN PORTA.0                                        '
DEFINE LCD_RSPIN PORTA.1                                        '
DEFINE LCD_INTERFACE 4                                          '
DEFINE LCD_LINES 2                                              '
DEFINE I2C_SLOW_BUS On                                          '
'------------------Değişken Ve Sembol Tanımlamaları-----------'
KONTROL  VAR Byte                                             '
A        VAR Byte                                             '
K        VAR Bit                                              '
SAYI     VAR Byte                                             '
BEKLE    VAR Byte
ADRES    VAR BYTE                                             '                                            '
FREKANS  VAR Word                                             '
TAM      VAR Word                                             '
ONDA     VAR Word                                             '
KONTROL2 VAR Word                                             '
HESAP    VAR Word                                             '
                                                                 '
Symbol ALT      = FREKANS.LowByte                                '
Symbol UST      = FREKANS.HighByte                               '
Symbol ASAGI    = PORTB.1                                        '
Symbol TAMAM    = PORTB.2                                        '
Symbol YUKARI   = PORTB.3                                        '
Symbol SDA      = PORTA.2                                        '
Symbol SCL      = PORTA.3                                        '
                                                                 '
'--------------------------PORT AYALARI--------------------------'
PORTA=0 : PORTB=0                                                '
TRISA=%10000 :TRISB=%00001111                                    '
OPTION_REG.7=0                                                   '
'--------------------------BASLANGIC-----------------------------'
PAUSE 300    : Cls  : FREKANS=5332                               '
ADRES=$C2  : K=0
LCDOUT $FE,$48,14,17,14,4 ,28,4,28,0                             '
LCDOUT $FE,$40,1 ,3 ,29,21,29,3, 1,0                             '
GoSub GOSTER                                                     '
GoSub GONDER                                                     '
'-------------------------ANA PROGRAM----------------------------'
ANA:                                                             '
KONTROL=FREKANS                                                  '
If YUKARI=0 Then                                                 '
BEKLE=80 :SAYI=1 : A=0                                           '
      While YUKARI=0                                             '
        A=A+1:If A=0 Then A=255                                  '
       If A>3 Then BEKLE=40                                      '
       If A>20 Then BEKLE=1 :SAYI=4                              '
       FREKANS=FREKANS+SAYI                                      '
      GoSub GOSTER                                               '
      GoSub GONDER                                               '
      PAUSE BEKLE                                                '
      Wend                                                       '
EndIf                                                            '
                                                                 '
                                                                 '
                                                                 '
If ASAGI =0 Then                                                 '
BEKLE=80 : SAYI=1 : A=0                                          '
      While ASAGI=0                                              '
        A=A+1:If A=0 Then A=255                                  '
       If A>3 Then BEKLE=40                                      '
       If A>20 Then BEKLE=1 :SAYI=4                              '
       FREKANS=FREKANS-SAYI                                      '
                                                                 '
      GoSub GOSTER                                               '
      GoSub GONDER                                               '
      PAUSE BEKLE                                                '
      Wend                                                       '
EndIf                                                            '
                                                                 '
If TAMAM=0 Then                                                  '
FREKANS=FREKANS+10                                               '
GoSub GOSTER                                                     '
GoSub GONDER                                                     '
EndIf                                                            '
If K=0 Then GoSub OKU                                            '
                                                                 '
GoTo ANA                                                         '
'---------------------------GOSTER-------------------------------'
GOSTER:                                                          '
HESAP=FREKANS*25                                                 '
HESAP=HESAP+10700                                                '
TAM =HESAP/ 1000                                                 '
ONDA=HESAP//1000                                                 '
                                                                 '
LCDOUT $FE,$80,"33ELEKTRONIK",$FE,$8C,0,")))"                    '
LCDOUT $FE,$C0,"Fr:",DEC3 TAM,".",DEC3 ONDA," MHz"               '
Return                                                           '
                                                                 '
'--------------------GONDERME VE OKUMA --------------------------'                                                                
GONDER:                                                          '
If FREKANS=KONTROL Then                                          '
Else                                                             '
I2CWRITE SDA,SCL,ADRES,[UST,ALT,$8E,$00]                         '
PAUSE 100                                                        '
OKU:                                                             '
I2CREAD  SDA,SCL,ADRES, [KONTROL]                                '
If KONTROL.6=1 Then                                              '
KONTROL=0 : LCDOUT $FE,$CF,1                                     '
K=1                                                              '
Else                                                             '
K=0                                                              '
KONTROL=0 : LCDOUT $FE,$CF,"X"                                    
EndIf                                                            '
EndIf                                                            '
Return                                                           '
'****************************************************************'
http://picasaweb.google.com/33elektronik http://www.33elektronik.tr.cx MSN: [email]sukruozkarabacak@hotmail.com[/email]

a.zorba

#1
I2C baglantısı nı yapmadım

'---------------------------PIC Ayarları------------------------ '
 DEVICE 16F628A                                                   

'---------------------------LCD Ayarları------------------------'
DEFINE LCD_DTPin PORTB.4                                        '
DEFINE LCD_ENPin PORTA.0                                        '
DEFINE LCD_RSPin PORTA.1                                        '
DEFINE LCD_Interface 4                                          '
DEFINE LCD_Lines 2                                              '
DEFINE I2C_SLOW_BUS On                                          '
'------------------Değişken Ve Sembol Tanımlamaları-----------'
KONTROL  VAR Byte                                             '
A        VAR Byte                                             '
K        VAR Bit                                              '
SAYI     VAR Byte                                             '
BEKLE    VAR Byte
ADRES    VAR Byte                                             '                                            '
FREKANS  VAR Word                                             '
TAM      VAR Word                                             '
ONDA     VAR Word                                             '
KONTROL2 VAR Word                                             '
HESAP    VAR Word                                             '
                                                                 '
Symbol ALT      = FREKANS.LowByte                                '
Symbol UST      = FREKANS.HighByte                               '
Symbol ASAGI    = PORTB.1                                        '
Symbol TAMAM    = PORTB.2                                        '
Symbol YUKARI   = PORTB.3                                        '
Symbol SDA      = PORTA.2                                        '
Symbol SCL      = PORTA.3                                        '
                                                                 '
'--------------------------PORT AYALARI--------------------------'
PORTA=0 : PORTB=0                                                '
TRISA=%10000 :TRISB=%00001111                                    '
OPTION_REG.7=0                                                   '
'--------------------------BASLANGIC-----------------------------'
DelayMS 300    : Cls  : FREKANS=5332                               '
ADRES=$C2  : K=0
Print At 1,$48,14,17,14,4 ,28,4,28,0                             '
Print At 1,$40,1 ,3 ,29,21,29,3, 1,0                             '
GoSub GOSTER                                                     '
GoSub GONDER                                                     '
'-------------------------ANA PROGRAM----------------------------'
ANA:                                                             '
KONTROL=FREKANS                                                  '
If YUKARI=0 Then                                                 '
BEKLE=80 :SAYI=1 : A=0                                           '
      While YUKARI=0                                             '
        A=A+1:If A=0 Then A=255                                  '
       If A>3 Then BEKLE=40                                      '
       If A>20 Then BEKLE=1 :SAYI=4                              '
       FREKANS=FREKANS+SAYI                                      '
      GoSub GOSTER                                               '
      GoSub GONDER                                               '
      DelayMS BEKLE                                                '
      Wend                                                       '
EndIf                                                            '
                                                                 '
                                                                 '
                                                                 '
If ASAGI =0 Then                                                 '
BEKLE=80 : SAYI=1 : A=0                                          '
      While ASAGI=0                                              '
        A=A+1:If A=0 Then A=255                                  '
       If A>3 Then BEKLE=40                                      '
       If A>20 Then BEKLE=1 :SAYI=4                              '
       FREKANS=FREKANS-SAYI                                      '
                                                                 '
      GoSub GOSTER                                               '
      GoSub GONDER                                               '
      DelayMS BEKLE                                                '
      Wend                                                       '
EndIf                                                            '
                                                                 '
If TAMAM=0 Then                                                  '
FREKANS=FREKANS+10                                               '
GoSub GOSTER                                                     '
GoSub GONDER                                                     '
EndIf                                                            '
If K=0 Then GoSub OKU                                            '
                                                                 '
GoTo ANA                                                         '
'---------------------------GOSTER-------------------------------'
GOSTER:                                                          '
HESAP=FREKANS*25                                                 '
HESAP=HESAP+10700                                                '
TAM =HESAP/ 1000                                                 '
ONDA=HESAP//1000                                                 '
                                                                 '
Print At 1,1,"33ELEKTRONIK",1,$8C,0,")))"                    '
Print At 1,1,"Fr:",Dec3 TAM,".",Dec3 ONDA," MHz"               '
Return                                                           '
                                                                 '
'--------------------GONDERME VE OKUMA --------------------------'                                                               
GONDER:                                                          '
If FREKANS=KONTROL Then                                          '
Else                                                             '
'I2CWRITE SDA,SCL,ADRES,[UST,ALT,$8E,$00]                         '
DelayMS 100                                                        '
OKU:                                                             '
'I2CREAD  SDA,SCL,ADRES, [KONTROL]                                '
If KONTROL.6=1 Then                                              '
KONTROL=0 : Print At 1,$CF,1                                     '
K=1                                                              '
Else                                                             '
K=0                                                              '
KONTROL=0 : Print At 1,$CF,"X"                                   
EndIf                                                            '
EndIf                                                            '
Return                                                           '
'****************************************************************'

pardon ben tekrar proton a cevirmişim
Bilenler bilir . Biz maraşlilar için şehir olarak şubat ay' i bayram ,kurtuluş ,yaz in gelmesiydi. Şimdi karalar in yas in ayı oldu.

sozkarabacak

SELAM,
İlginize teşekkür ederim ama yazılım protonda zaten sorunsuz olarak çalışıyor benim amacım basic diline çevirip bu haline eklentiler yapmak.
http://picasaweb.google.com/33elektronik http://www.33elektronik.tr.cx MSN: [email]sukruozkarabacak@hotmail.com[/email]

ete

ADRES VAR BYTE
ifadesi PBP yeni versiyonlarda reserved word yani derleyicinin özel kelimeleri listesine dahil kelimelerden sayılarak hata mesajı verdirmektedir.
BUnu gidermek için ifadeyi aşağıdaki şekilde değiştirin,
ADRES Yerine YOL ifadesini kullanın
YOL VAR BYTE
tabiki program içinde geçen ADRES kelimesi ile YOL kelimesini değiştirin.
Bunun için bul değiştir fonksiyonunu kullanabilirsiniz.

Ete

Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

sozkarabacak

http://picasaweb.google.com/33elektronik http://www.33elektronik.tr.cx MSN: [email]sukruozkarabacak@hotmail.com[/email]

sozkarabacak

Deleme çalıştı hex kodunu elde ettim ama bu seferde similasyonda bir görüntü yok. Acaba neden olabilir?
http://picasaweb.google.com/33elektronik http://www.33elektronik.tr.cx MSN: [email]sukruozkarabacak@hotmail.com[/email]