protonda derlemem lazım?

Başlatan serpil_07, 07 Şubat 2007, 16:58:40

serpil_07

arkadaşlar aşağıdaki kodları poton lite derlemem gerek. ne gibi değişiklikler yapmam lazım. pic tanıtılması gerekirmi nasıl yapabilirim yardımcı olursanız sevinirim??

*****************************************************

define OSC 20
adcon1=7  :  TRISA=0  :  PORTA=0
TRISB=0  :  PORTB=0
trisc=0  :  portc=0

sda var PORTA.4  :  scl var PORTA.3  :  izin var PORTA.5

tekrar var Byte  :  lcd_reg var Byte  :  veri var Byte
adres_sec var Byte  :  yinele var Byte  :  harf_reg var Byte
i var Byte  :  sutun_reg var Byte[320]
y var Word  :  satir_reg var Byte  :  w var Byte
harf_sayisi var Byte  :  yazi_reg var Byte  :  byte_sayisi var Byte
x var Byte  :  z var Word  :  kay_reg var Word  :  b var Word

tekrar=0  :  yazi_reg=0  :  satir_reg=1  :  kay_reg=0  :  y=0

main: Call yazi  :  harf_sayisi=harf_reg
yazi_reg=yazi_reg+1
For i=1 To harf_sayisi
Call yazi  :   Call data_sec
For x=0 To yinele
Call datalar  :  adres_sec=adres_sec+1
sutun_reg[y]=veri  :  y=y+1
Next x
yazi_reg=yazi_reg+1
Next i
yazi_reg=0  :  GoTo loop

loop: Call logo
For b=1 To 3
Call logo_goster  :  pause 1000
Next b
Call logo  :  GoTo loop1

logo_goster:
For z=1 To 10
For x=1 To 10
For i=0 To 15
portc=sutun_reg[y]  :  PORTA=i  :  PORTB=satir_reg
pauseus 50  :  PORTB=0
y=y+1
Next i
satir_reg=satir_reg+1
Next x
satir_reg=1

For x=1 To 10
For i=0 To 15
portc=sutun_reg[y]  :  PORTA=i  :  PORTB=satir_reg<<4
pauseus 50  :  PORTB=0
y=y+1
Next i
satir_reg=satir_reg+1
Next x
y=0  :  satir_reg=1
Next z
satir_reg=1  :  kay_reg=0  :  Return

loop1: For z=1 To 320
For x=1 To 10
For i=0 To 15 
portc=sutun_reg[y]  :  PORTA=i  :  PORTB=satir_reg
pauseus 100  :  PORTB=0
y=y+1
Next i
satir_reg=satir_reg+1
Next x
satir_reg=1

For x=1 To 10
For i=0 To 15
portc=sutun_reg[y]  :  PORTA=i  :  PORTB=satir_reg<<4
pauseus 100  :  PORTB=0
y=y+1
Next i
satir_reg=satir_reg+1
Next x
kay_reg=kay_reg+1  :  y=kay_reg  :  satir_reg=1
Next z
satir_reg=1  :  kay_reg=0  :  y=0
Call logo  :  GoTo loop

logo: For w=1 To 3
Call logo_goster
Next w
Return

yazi:
LookUp yazi_reg,[53,"a b c d e f g h ı i j k l m n o p r s t u v y z 1 2 3 4 5 6 7 8 9 ..."],harf_reg
Return

data_sec: Select Case harf_reg
Case "A"
adres_sec=0  :  yinele=5  :  Return
Case "B"
adres_sec=6  :  yinele=5  :  Return
Case "C"
adres_sec=12  :  yinele=5  :  Return
Case "D"
adres_sec=18  :  yinele=5  :  Return
Case "E"
adres_sec=24  :  yinele=5  :  Return
Case "F"
adres_sec=30  :  yinele=5  :  Return
Case "G"
adres_sec=36  :  yinele=5  :  Return
Case "H"
adres_sec=42  :  yinele=5  :  Return
Case "I"
adres_sec=48  :  yinele=3  :  Return
Case "i"
adres_sec=52  :  yinele=3  :  Return
Case "J"
adres_sec=56  :  yinele=5  :  Return
Case "K"
adres_sec=62  :  yinele=5  :  Return
Case "L"
adres_sec=68  :  yinele=5  :  Return
Case "M"
adres_sec=74  :  yinele=5  :  Return
Case "N"
adres_sec=80  :  yinele=5  :  Return
Case "O"
adres_sec=86  :  yinele=5  :  Return
Case "P"
adres_sec=92  :  yinele=5  :  Return
Case "q"
adres_sec=98  :  yinele=5  :  Return
Case "R"
adres_sec=104  :  yinele=5  :  Return
Case "S"
adres_sec=110  :  yinele=5  :  Return
Case "T"
adres_sec=116  :  yinele=5  :  Return
Case "U"
adres_sec=122  :  yinele=5  :  Return
Case "u"
adres_sec=128  :  yinele=5  :  Return
Case "V"
adres_sec=134  :  yinele=5  :  Return
Case "W"
adres_sec=140  :  yinele=5  :  Return
Case "X"
adres_sec=146  :  yinele=5  :  Return
Case "Y"
adres_sec=152  :  yinele=5  :  Return
Case "Z"
adres_sec=158  :  yinele=5  :  Return
Case " "
adres_sec=164  :  yinele=5  :  Return
Case "0"
adres_sec=170  :  yinele=5  :  Return
Case "1"
adres_sec=176  :  yinele=3  :  Return
Case "2"
adres_sec=180  :  yinele=5  :  Return
Case "3"
adres_sec=186  :  yinele=5  :  Return
Case "4"
adres_sec=192  :  yinele=5  :  Return
Case "5"
adres_sec=198  :  yinele=5  :  Return
Case "6"
adres_sec=204  :  yinele=5  :  Return
Case "7"
adres_sec=210  :  yinele=5  :  Return
Case "8"
adres_sec=216  :  yinele=5  :  Return
Case "9"
adres_sec=222  :  yinele=5  :  Return
End Select


datalar:
   LookUp adres_sec,[$3F,$48,$48,$48,$3F,0_      ;A
   ,$7f,$49,$49,$49,$36,0_      ;B
   ,$3e,$41,$41,$41,$22,0_      ;C
   ,$7f,$41,$41,$41,$3e,0_      ;D
   ,$7f,$49,$49,$49,$41,0_      ;E
   ,$7f,$48,$48,$48,$40,0_      ;F
   ,$3E,$41,$49,$49,$2E,0_      ;G
   ,$7F,$08,$08,$08,$7F,0_      ;H
   ,$41,$7F,$41,0_              ;I
   ,$11,$5F,$11,0_              ;İ
   ,$02,$01,$41,$7e,$40,0_      ;J
   ,$7f,$08,$14,$22,$41,0_      ;K
   ,$7f,$01,$01,$01,$01,0_      ;L
   ,$7f,$20,$18,$20,$7F,0_      ;M
   ,$7F,$10,$08,$04,$7F,0_      ;N
   ,$3E,$41,$41,$41,$3E,0_      ;O
   ,$7f,$48,$48,$48,$30,0_      ;P
   ,$3e,$41,$45,$42,$3d,0_      ;Q
   ,$7f,$48,$4C,$4a,$31,0_      ;R
   ,$32,$49,$49,$49,$26,0_      ;S
   ,$40,$40,$7F,$40,$40,0_      ;T
   ,$7E,$01,$01,$01,$7E,0_      ;U
   ,$1E,$41,$01,$41,$1E,0_      ;Ü
   ,$7C,$02,$01,$02,$7C,0_      ;V
   ,$7E,$01,$0E,$01,$7E,0_      ;W
   ,$63,$14,$08,$14,$63,0_      ;X
   ,$70,$08,$07,$08,$70,0_      ;Y
   ,$43,$45,$49,$51,$61,0_      ;Z
   ,$00,$00,$00,$00,$00,0_      ;Space
   ,$3E,$45,$49,$51,$3E,0_      ;0
   ,$21,$7F,$01,0_             ;1
   ,$21,$43,$45,$49,$31,0_      ;2    
   ,$42,$41,$51,$69,$46,0_      ;3
   ,$0c,$14,$24,$7f,$04,0_      ;4
   ,$72,$51,$51,$51,$4e,0_      ;5
   ,$1e,$29,$49,$49,$06,0_      ;6
   ,$40,$47,$48,$50,$60,0_      ;7
   ,$36,$49,$49,$49,$36,0_      ;8
   ,$30,$49,$49,$4a,$3c,0],veri      ;9
Return

gonder: If tekrar=8 Then 
 tekrar=0  :  High izin  :  pauseus 1  :  Low izin  :  Return
  EndIf
   If lcd_reg.7=1 Then
    sda=1  :  scl=1  :  pauseus 1  :  scl=0
     lcd_reg=lcd_reg<<1  :  tekrar=tekrar+1  :  GoTo gonder
      EndIf
       sda=0  :  scl=1  :  pauseus 1  :  scl=0
        lcd_reg=lcd_reg<<1  :  tekrar=tekrar+1  :  GoTo gonder

****************************************************

:oops:

OG

Bunlar PBP kodu. MCSP de derleyebilirsiniz. Proton için bazı değişiklikler gerekir. İlk görebildiklerim;

Bas tarafa

Device = 16F628


gibi tanımlamazsanız 16f84 kabul eder ve hata verir

define leri declare olarak değiştir

değişkenleri
Dim degisken As Byte
gibi tanımlamanız lazım.

LCD kullanıyorsanız onları declare etmeniz lazım
LCD_DTPIN = PORTB.4    
LCD_RSPIN = PORTB.3 
LCD_ENPIN = PORTB.2 
LCD_INTERFACE = 4 
LCD_LINES = 4 
LCD_TYPE = 0
gibi.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

mytap

define OSC 20


bu komut Protona yabancıdır. Bunun yerine;

xtal = 20


yazınız.
-------------------------------------------------------- hayırlı günler, iyi çalışmalar..  --------------------------------------------------------

serpil_07

Device = 18f452
xtal = 20

değiştirdim ama aşağıdaki hataları alıyorum. yardımlarınız için tşekür ediyorum arkadaşlar.

http://rapidshare.com/files/15414573/hatalar.doc

dombilik

öncelikle kullandiginiz derleyici lite versiyon ve bir satira birden fazla komut yazamazsınız diye uyarı veriyor.Bu sorunu forumdan proton derleyicinin aslini arayip kurmak sureti ile giderebilirsiniz.
TRISC,ADCON gibi registerleri bulamaması ise include ile ilgili mcu nun seçilmemiş olması.Belkide yazdıgınız programın oldugu klasöre bu inc dosyasını ilave edip derlerseniz bu hataları vermeyecektir.
variable leri bulamaması ise yanlış tanımlamadan kaynaklanıyor.
'dim değişken as byte'        syntaxına uygun atanmalı...
for next dongunuz de de i değişkeninin atamasının yanlış olmasından kaynaklanıyor.Kolay gelsin.
Bildiklerini kime miras bıraktın?kimseyemi? O zaman bildiklerinin ne önemi kalır. ******** /////////// ******** PROTON-ASM PROTEUS 7.4 SP3 EAGLE 5.40

serpil_07

forumda bir örnek verebilirmisiniz. :roll:

OG

PBP ile derleyince ERROR: Unable to fit variable sutun_reg
sutun_reg dizisi fazla büyük ;
sutun_reg var Byte[320]
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.