proton 2.0.0.5 verisyonu seri iletişimde (serin) hataya neden oluyor!!!

Başlatan forumsad, 08 Mart 2011, 14:09:20

forumsad

arkadaşlar protonun 2.0.0.5 versiyonunu yükledim eski versiyonda yazdığın seri iletişim kodu yeni versiyonda derlediğim zaman çalışmıyor
başka bir pc de eski versiyon yüklü orda çalışan kodu alıp yeni versiyonda derlediğim zaman veriler bozuluyor..

bilği alma kodum şu:
Include "MODEDEFS.BAS"              'serin-serout 
Dim Gelen As Word

SerIn PORTC.7 ,T9600,[Gelen]

pic16f877 kullanıyorum yeni derleyici neden böyle bir hataya neden oluyor acaba teşekkürler...

Maxim



Maxim

yeni versiyonda bozulan değilde düzeltilen bir yer vardır mutlaka
kodu iyice inceleyin bence

ibrsel

Verilen hata nedir,onuda yazarsanız daha iyi çözümde bulunulabilir..

forumsad

şöyle anlatayım yanımda 2 adet bilğisayar var bilğisayarın birinde  proton proton 2.1.3 versiyonu yüklü burda daha önce yazdığım kod var
seri iletişim kodu aşagıdaki gibidir
Device 16F877A ;ENTEGRE TANIMLAMA
Xtal 4 ;KRISTAL FREKANSI 
'------------------------------------------------------------------------
TRISA=%11111111
TRISB=%00000001  'PORTB7 GIRIS DIGERLERI ÇIKIS OLSUN
TRISC=%10000000
TRISD=%11110000
TRISE=%00000000

PORTA=0 
PORTB=0 
PORTC=0 
PORTD=0
PORTE=0


'LCD TANITMA BOLÜMÜ.....................................................................................

DEFINE LCD_DREG		PORTB	    'LCD data bacaklari hangi porta bagli? portb
DEFINE LCD_DBIT		PORTB.4		'LCD data bacaklari hangi bitten basliyor? portb.4 den itibaren
Declare LCD_ENPin   PORTB.3     'LCD "E" pin portb nin hangi bitine baglidir.
Declare LCD_RSPin   PORTB.2     'LCD "RS" pin portb nin hangi bitine baglidir.
DEFINE LCD_BITS			4		'LCD 4 bit  olarak bağlı

'-----------------------------------------------------------------------
'----------------------------------------------------------------------			
Include "MODEDEFS.BAS"              'serin-serout          
All_Digital=TRUE                    'bütün portlari djital (1-0) yap 
PortB_Pullups=FALSE                 'portb nin pull up kapat 
'----------------------------------------------------------------------	'kesme ayarları------------------------------------------------------
On_Interrupt GoTo KESME
OPTION_REG = %00000000 'INTERRUPT KÖSE DURUMU
INTCON  =%10010000     'global kesme aktif,portb.0 kesmesi aktif
'Symbol GIE = INTCON.7  'Global Interrupt Enable
'-----------------------------------------------------------------------


Dim GiVeri As Word
Dim TVeri As Word
Dim Gelen As Word
Dim SAY As Word


Dim sykmk1 As Word
Dim sykmk2 As Word
Dim sykmk12 As Word

Dim syksay1 As Word
Dim syksay2 As Word



'........lcd açılış yazısı.........................................................
Print At 1,1,"test" 
'Print at 2,1,"test" 

'delayms 2000 ': Print $fe,1
'---------------------------------------------------------------------------------





SAY=0
sykmk1=0
sykmk2=0
syksay1=0
syksay2=0
'//////////////////////////////////////////////////////////////////////////
BASLA:
'*****************************************
Enable             'kesme devrede 
INTCON.7=1         'global kesme aktif
'*****************************************
If  PORTD.6=1 Then PORTC.0=0
If  PORTD.7=1 Then PORTC.1=0

If  PORTD.6=0 And PORTD.7=0 Then GoTo mk12_kontrol
If  PORTD.7=0 Then GoTo mk1_kontrol
If  PORTD.6=0 Then GoTo mk2_kontrol




PORTC.0=1   'pic devrede
PORTC.1=0   'kesme veya test yok




'**********************************************************************************************************
PORTC.5=0           '877 den max485'e veri gönderme izni iptal
PORTC.4=1           'com dan max485'e veri gönderme izni verildi

SerIn PORTC.7 ,T9600,[Gelen]  
PAUSE 100

SAY=Gelen
Select SAY	
	
Case 48	
GoTo test	
Case 49	
GoTo mk1_on
Case 50	
GoTo mk1_off
Case 51
GoTo mk1_saykil
Case 52
GoTo mk2_on
Case 53
GoTo mk2_off
Case 54
GoTo mk2_saykil

Case Else	
SAY=0	
EndSelect	


GoTo BASLA
'--------------------------------------------------------------------------------------------------------------
'--------------------------------------------------------------------------------------------------------------


'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
KESME:
Disable            'kesmeyi pasif

'bir islem yapma sadece baslaya git
 
INTCON.1=0       	'RB0/INT Bayrağı (flag) silindi.
Resume
GoTo BASLA
'-------------------------------------------------------------------------------------------------------------



'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
mk1_on:

	   
GoTo BASLA
'-------------------------------------------------------------------------------------------------------------

'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
mk1_off:

GoTo BASLA
'-------------------------------------------------------------------------------------------------------------

'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
mk1_saykil:

		   
GoTo BASLA
'-------------------------------------------------------------------------------------------------------------


'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
mk2_on:

GoTo BASLA
'-------------------------------------------------------------------------------------------------------------

'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
mk2_off:

GoTo BASLA
'-------------------------------------------------------------------------------------------------------------

'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
mk2_saykil:

		   
GoTo BASLA
'-------------------------------------------------------------------------------------------------------------


mk1_kontrol:
GoTo mk1verigonder
GoTo BASLA

mk2_kontrol:
GoTo mk2verigonder
GoTo BASLA

mk12_kontrol:
GoTo mk12verigonder
GoTo BASLA
'-------------------------------------------------------------------------------------------------------------
'-------------------------------------------------------------------------------------------------------------

mk1verigonder:


GoTo BASLA
'-------------------------------------------------------------------------------------------------------------








'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
mk2verigonder:


GoTo BASLA
'-------------------------------------------------------------------------------------------------------------



'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
mk12verigonder:


GoTo BASLA
'-------------------------------------------------------------------------------------------------------------
'-------------------------------------------------------------------------------------------------------------
'-------------------------------------------------------------------------------------------------------------
'-------------------------------------------------------------------------------------------------------------
'-------------------------------------------------------------------------------------------------------------







'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
test:


GoTo BASLA
'**********************************************************************************************************

End


şimdi birinci bilğisayarda bu kodu derliyorum isisde çalıştırıyorum seri portdan veri gönderip işlem yaptırıyorum her şey normal ve güzel çalışıyor...






şimdi bu çalışan kodu alıp ikinci bilğisayara atıyorum ikinci bilğisayarda
loader versiyon 2.0.0.0
compiler versiyon 3.4.0.8  yüklü
programı çalıştırıp kodu derliyorum hatasız derliyor sadece pause yerine delayMs ile değiştir diyor düzeltmeleri yapıyorum tekrar derliyorum hatasız derleniyor isise geçip kontrol ettiğimde seri porttdan gelen verileri değiştiriyor bozuyor dolayısıyla kod çalışmıyor

mesela önceki programda seriportdan 0 gönderdiğimde serin 0 'ı alğılıyor ve çalışıyordu burda seri portdan 0 gönderdiğimde 5685 gibi değişik rakamlar
geliyor dolayısıyla kod çalışmıyor

teşekkürler

Maxim

sizin kod basicten çevirme gibi hala

T9600 nedir? bu satırın böyle olmaması lazım sanki
SerIn PORTC.7 ,T9600,[Gelen]


orayı böyle değiştirip denermisiniz?
SerIn PORTC.7 ,16468,[Gelen]
16468, 9600 baud, 8bit inverted demek.


ayrıca lcd tanımlama satırınıda böyle yapın
Declare LCD_DTPin PORTB.4
Declare LCD_ENPin PORTB.3 'LCD "E" pin portb nin hangi bitine baglidir.
Declare LCD_RSPin PORTB.2 'LCD "RS" pin portb nin hangi bitine baglidir.
Declare LCD_Interface 4
Declare LCD_Lines 2


son olarak bu düzenlemelerden sonra 3.5.1.2 versiyonda yaratılmış hex

:10000000000000308A00C428FF0003088301FE00BE
:100010000408FC000A08FD0000308A009A29A101AA
:10002000A117B000FE30932030089328AE0086114F
:1000300006118316861106110F30860583122E08CD
:10004000A01840283E30AA008030A4203330AD00F4
:1000500054201330AA008830A42054206430A320F8
:1000600054206430A3202230AD00542028303F209B
:100070000C303F2006303F20A0142E0840282014CA
:10008000AD00201C4E280611033C031C53285320AE
:100090000730AA00D030A420031408002014FE3C2E
:1000A000031961280615201C201086150F308605BF
:1000B0002D08F03986048611AD0E201854283230F0
:1000C000A3202E08C0287820031863288320AF01BE
:1000D0000830AC00842078200318AF0AB11EAF01AD
:1000E000AB0CAC0B6A28B11AAB1384202B080800A8
:1000F0002208840027088417800484130005311B1C
:100100002706FF3E0800281731081F39FF3EAA00C6
:100110003008F53E0318AA0A281FA4282813A900AE
:100120000230BB20A428A11B16280800AC01AB009C
:10013000FF30AB07031CAC07031CC0280330AA0028
:10014000DF30A4209828AA01E83EA900AA09FC30C3
:10015000031CAD28A9070318AA28A9070000AA0FA5
:10016000AA282918B328A91CB7280000B728080016
:100170000310AA0CA90CFF3E0318B8282908C028B0
:100180008313831203130800A001FF308316850038
:100190000130860080308700F030880089018312AA
:1001A00085018601870188018901073083169C003B
:1001B0009F008117810190308B0080308312A10055
:1001C0008A010F2074308A01162065308A011620BA
:1001D00073308A01162074308A011620BA01B901E1
:1001E000BC01BB01BE01BD01C201C101C401C3010B
:1001F0008B178A110A12081FFE280710080D8A1192
:100200000A12031C042987100130081B0301B200E5
:100210000130881B0301B2058A110A120319132940
:100220008A110A12B329080D8A110A1203181B2910
:100230008A110A12A9298A110A12081B22298A1175
:100240000A12AE2907148710871207160730A2007A
:100250008030A7004030B1005430B0008A016320E4
:10026000B7008A016320B80064308A0196203808FC
:10027000BA003708B9003908303A3A048A110A122C
:10028000031D48298A110A12BE298A110A129829C7
:100290003908313A3A048A110A12031D55298A1184
:1002A0000A129D298A110A1298293908323A3A0409
:1002B0008A110A12031D62298A110A129F298A11C2
:1002C0000A1298293908333A3A048A110A12031D8E
:1002D0006F298A110A12A1298A110A12982939084C
:1002E000343A3A048A110A12031D7C298A110A122F
:1002F000A3298A110A1298293908353A3A048A1131
:100300000A12031D89298A110A12A5298A110A12C3
:1003100098293908363A3A048A110A12031D962997
:100320008A110A12A7298A110A129829BA01B90159
:100330008A01F8288B108A01F8288A01F8288A0196
:10034000F8288A01F8288A01F8288A01F8288A0101
:10035000F8288A110A12B8298A01F8288A110A1283
:10036000BA298A01F8288A110A12BC298A01F828B8
:100370008A01F8288A01F8288A01F8288A01F828D1
:0A03800063008A01C0298A01C32925
:02400E00713F00
:00000001FF

forumsad

Maxim arkadaş vakit ayırdığın için öncelikle teşekkürler

söylediğin şekilde kodu düzelttim ve birazda sadeleştirdim
Device 16F877A ;ENTEGRE TANIMLAMA
Xtal 4 ;KRISTAL FREKANSI 
'------------------------------------------------------------------------
TRISA=%11111111
TRISB=%00000001  'PORTB7 GIRIS DIGERLERI ÇIKIS OLSUN
TRISC=%10000000
TRISD=%11110000
TRISE=%00000000

PORTA=0 
PORTB=0 
PORTC=0 
PORTD=0
PORTE=0


'LCD TANITMA BOLÜMÜ.....................................................................................

Declare LCD_DTPin PORTB.4
Declare LCD_ENPin PORTB.3 'LCD "E" pin portb nin hangi bitine baglidir.
Declare LCD_RSPin PORTB.2 'LCD "RS" pin portb nin hangi bitine baglidir.
Declare LCD_Interface 4
Declare LCD_Lines 2
'-----------------------------------------------------------------------
'----------------------------------------------------------------------			
Include "MODEDEFS.BAS"              'serin-serout          
All_Digital=TRUE                    'bütün portlari djital (1-0) yap 
PortB_Pullups=FALSE                 'portb nin pull up kapat 

Dim Gelen As Word



'........lcd açılış yazısı.........................................................
Print At 1,1,"test" 

Gelen=1
'//////////////////////////////////////////////////////////////////////////
BASLA:
'*****************************************
Enable             'kesme devrede 
INTCON.7=1         'global kesme aktif
'*****************************************


PORTC.0=1   'pic devrede


SerIn PORTC.7 ,16468,[Gelen] 
DelayMS 100

Print At 2,1,Dec Gelen



GoTo BASLA
'--------------------------------------------------------------------------------------------------------------


delphide yazdığım seri porta veri gönderen programla seri porta 0 gönderiyorum hatta 0 gittiğinden emin olmak için serial port monitör ile izleme yapıyorum pic'e kesinlikle 0 gidiyor 
pic gelen veriyi  lcd ye yazdırdığında sonuç aşağıdaki gibi hatalı çıkıyor compiler uyaşmazlığı falan olabilir mi acaba??

[img=http://i1103.hizliresim.com/2011/3/9/5627.jpg]
http://i1103.hizliresim.com/2011/3/9/5627.jpg

Maxim

Dim Gelen As Byte olması lazım,
word olunca sapıtıyor çünkü data ascii olarak geliyor
yani küçük "a" harfine basınca 97 olarak geliyor
ascii to dec hesaplamasımı yapmak gerekiyor nedir
zaten rsin komutunu kullanmak daha iyi, ben olsam onu denerdim.. hatta hsrin donanımdan seri giriş var nasılsa .


forumsad

Dim Gelen As Byte
yaptım gene olmadı

sizde çalışan küçük bir kodu bana gönderebilirmisiniz !

sizde çalışan hex dosyasını denerim önce sonra kendim derleyip denerim ??  bakalım ne olacak??


Maxim

dikkat edersen birde string tanımlamaları var ,
pasif şu an , onlar kullanılırsa, a harfine basınca ekranda a çıkar.

kod:

Device 16F877A ;ENTEGRE TANIMLAMA
Xtal 4 ;KRISTAL FREKANSI

'------------------------------------------------------------------------
TRISA=%11111111
TRISB=%00000001 'PORTB7 GIRIS DIGERLERI ÇIKIS OLSUN
TRISC=%10000000
TRISD=%11110000
TRISE=%00000000

PORTA=0
PORTB=0
PORTC=0
PORTD=0
PORTE=0


'LCD TANITMA BOLÜMÜ.....................................................................................

Declare LCD_DTPin PORTB.4
Declare LCD_ENPin PORTB.3 'LCD "E" pin portb nin hangi bitine baglidir.
Declare LCD_RSPin PORTB.2 'LCD "RS" pin portb nin hangi bitine baglidir.
Declare LCD_Interface 4
Declare LCD_Lines 4
'-----------------------------------------------------------------------
'----------------------------------------------------------------------
All_Digital=TRUE 'bütün portlari djital (1-0) yap
PortB_Pullups=FALSE 'portb nin pull up kapat

Dim Gelen As Byte
'Dim SerString[3] As Byte

'........lcd açılış yazısı.........................................................
Print At 1,1,"test"

Gelen=1
'//////////////////////////////////////////////////////////////////////////
BASLA:
'*****************************************
Enable 'kesme devrede
INTCON.7=1 'global kesme aktif
'*****************************************

PORTC.0=1 'pic devrede

SerIn PORTC.7 ,16468,[Gelen]
'SerIn PORTC.7, 16468, [Str SerString]                   

DelayMS 100

Print At 2,1,Dec Gelen,"  "
'Print At 2,1,Str SerString             

GoTo BASLA
'--------------------------------------------------------------------------------------------------------------


hex:

:10000000000001308A000729A101A117B400FE30C9
:10001000BA203408BA28A801AF00B001A0112808FE
:100020000319A0150530A7002730AE00103024209A
:100030000330AE00E8302420AE0164302420AE014D
:100040000A3024202F082B28AD003008AC002F08E0
:10005000AB00DF202B08AB00A7030319A011280871
:1000600003193528270203183C282B08031DA0116B
:10007000A0193C28303EBA280800B20086110611AB
:100080008316861106110F30860583123208A018D8
:1000900067283E30AC008030CB203330B1007B206D
:1000A0001330AC008830CB207B206430CA207B200A
:1000B0006430CA202230B1007B20283066200C300A
:1000C000662006306620A014320867282014B1008C
:1000D000201C75280611033C031C7A287A2007305F
:1000E000AC00D030CB20031408002014FE3C0319D0
:1000F00088280615201C201086150F30860531082B
:10010000F03986048611B10E20187B283230CA20BF
:10011000320803299F2003188A28AA20B301083037
:10012000AE00AB209F200318B30AB51EB301AD0C7F
:10013000AE0B9128B51AAD13AB202D08080022088C
:10014000840029088417800484130005351B2906C0
:10015000FF3E08002A1735081F39FF3EAC0034085F
:10016000F53E0318AC0A2A1FCB282A13AB00023035
:10017000FE20CB28A11B3D280800AE01AD00FF30BA
:10018000AD07031CAE07031C03290330AC00DF30AE
:10019000CB20BF28AC01E83EAB00AC09FC30031C0F
:1001A000D428AB070318D128AB070000AC0FD12827
:1001B0002B18DA28AB1CDE280000DE280800B0016E
:1001C000AF011030B1002C0DAF0DB00D2D08AF02F6
:1001D0002E08031C2E0FB0020318F5282D08AF07B8
:1001E0002E0803182E0FB0070310AB0DAC0DB10B8A
:1001F000E3282B0808000310AC0CAB0CFF3E0318DF
:10020000FB282B0803298313831203130800A00182
:10021000FF30831685000130860080308700F03083
:10022000880089018312850186018701880189017F
:10023000073083169C009F00811780308312A10035
:100240008A01042074308A013D2065308A013D20F6
:1002500073308A013D2074308A013D200130B600A0
:100260008B1707140730A2008030A9004030B5007A
:100270005430B4008A018A20B60064308A01BD205F
:100280008030A100C0308A01042036088A010B208A
:1002900020308A013D208A013D208A0130298A01CF
:0202A0004F29E4
:02400E00323F3F
:00000001FF

forumsad

yok üstad ne yapsam olmuyor başka bir sürüm bulup deneyeceğim

zaman ayırdığınız için çok teşekkürler

saygılarımla...