RDM6300 Okuma Hakkında

Başlatan oguztkn, 20 Aralık 2020, 01:44:06

oguztkn

Merhaba Arkadaşlar,


Rfid üzerinden kart kayıt etmek ve master tanımlama istiyorum. Kullanımı biraz daha rahat olması açısından RDM6300 kullanıyorum. Ekteki kod ile lcd ekranda kartın id'sini ekranda görebiliyorum. Kayıt olarak da for döngüsü kurup her tur da eprom adresini bir arttırarak kayıt işlemini yapabilirim. Yalnız bu şekilde bir kart için yaklaşık 12 adres kullanmış olacak ve kart sayısı arttıkça mesela write 255 yaptı sonrakinde write 256 olamayacağından sonrası nasıl olur bir çözüm bulamadım. Ya da yanlış mantıkta mı yürütüyorum fikir verebilirseniz sevinirim

Şimdiden Teşekkürler....


ASM
    __CONFIG _CONFIG1H, _FOSC_INTIO67_1H & _PLLCFG_ON_1H & _PRICLKEN_ON_1H & _FCMEN_OFF_1H & _IESO_OFF_1H        
    __CONFIG _CONFIG2L, _PWRTEN_ON_2L & _BOREN_OFF_2L & _BORV_285_2L 
    __CONFIG _CONFIG2H, _WDTEN_OFF_2H & _WDTPS_32_2H                                                                                    
    __CONFIG _CONFIG3H, _CCP2MX_PORTB3_3H & _PBADEN_OFF_3H & _CCP3MX_PORTB5_3H & _HFOFST_OFF_3H & _T3CMX_PORTC0_3H & _P2BMX_PORTC0_3H & _MCLRE_INTMCLR_3H
    __CONFIG _CONFIG4L, _STVREN_OFF_4L & _LVP_OFF_4L & _XINST_OFF_4L & _DEBUG_OFF_4L
    __CONFIG _CONFIG5L, _CP0_ON_5L & _CP1_ON_5L & _CP2_ON_5L & _CP3_ON_5L    
    __CONFIG _CONFIG5H, _CPB_ON_5H & _CPD_ON_5H
    __CONFIG _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L
    __CONFIG _CONFIG6H, _WRTC_OFF_6H & _WRTB_OFF_6H & _WRTD_OFF_6H 
    __CONFIG _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L 
    __CONFIG _CONFIG7H, _EBTRB_OFF_7H 
endasm
;===============================================================================
DEFINE OSC 64
OSCCON  = %01110100              
OSCTUNE = %01000000 

DEFINE LCD_DREG		PORTD
DEFINE LCD_DBIT			4
DEFINE LCD_EREG		PORTD
DEFINE LCD_EBIT			0
DEFINE LCD_RWREG        PORTD
DEFINE LCD_RWBIT                1
DEFINE LCD_RSREG	PORTD
DEFINE LCD_RSBIT	        2
DEFINE LCD_BITS			4
DEFINE LCD_LINES	        4


DEFINE HSER_RCSTA 90h 
DEFINE HSER_TXSTA 20h 
DEFINE HSER_SPBRG 103 
DEFINE HSER_CLROERR 1 


;===============================================================================
TRISA=0:TRISB=%00011010:TRISC=%10000000:TRISD=0:TRISE=0
PORTA=0:PORTB=0:PORTC=0:PORTD=0:PORTE=0                    
;===============================================================================
ADCON0.0=0:ANSELA=0:ANSELB=0:ANSELC=0:ANSELD=0:ANSELE=0 
;===============================================================================
RCON.7=0:PMD0=1:PMD2=1:CM1CON0.7=0:IOCB=%00010000:WPUB=%00000000
SLRCON=0:CTMUCONH.7=0:SRCON0.7=0:VREFCON0.7=0          
;===============================================================================
INTCON=%11000000:INTCON2=%00000000:INTCON3=%00000000
PIR1=0:PIR2=0:PIR3=0:PIR4=0:PIR5=0                    
PIE1=%00100000:PIE3=0:PIE4=0:PIE5=0                   
IPR1=0:IPR3=0:IPR4=0:IPR5=0                           
;===============================================================================
gelen var byte[60]
lcdout $FE,1
clear
pause 300
on INTERRUPT GOTO KESME




Basla:
      lcdout $FE,$80,dec3 gelen[0]," ",dec3 gelen[1]," ",dec3 gelen[2]," ",dec3 gelen[3]," ",dec3 gelen[4]
      lcdout $FE,$C0,dec3 gelen[5]," ",dec3 gelen[6]," ",dec3 gelen[7]," ",dec3 gelen[8]," ",dec3 gelen[9]
      lcdout $FE,$94,dec3 gelen[10]," ",dec3 gelen[11]," ",dec3 gelen[12]," ",dec3 gelen[13]

goto bASLA


disable 
KESME:
     hserin 100,atla,[wait($02),str gelen\12,wait($03)]
atla:
    TEMP2=RCREG
resume
enable 
end


ete

Öncelikle neyi kaç byte kayıt ettiğini bir açıklaki ona göre düşünelim. Bu bilgi olmadanda yapabileceğim öneri kaç byte kayıt edeceksen o byte ları yan yana yaz ve tek seferde kayıt et şeklinde olur. Programında kayıt ile alakalı bir şey yok olsa bakıp ne olduğunuda belki anlayabilirdik. Bildiğim kadarı ile ID no ları değişmez. Sen ancak üye ID si kayıt edebilirsin. Üye sayın 256 dan fazla ise her üye için çift byte numaralandırma sistemi kullanman gerekir. Bu durumda üye numaraların word cinsinden olacaktır.
Ete

oguztkn

Alıntı yapılan: ete - 20 Aralık 2020, 08:11:44Öncelikle neyi kaç byte kayıt ettiğini bir açıklaki ona göre düşünelim. Bu bilgi olmadanda yapabileceğim öneri kaç byte kayıt edeceksen o byte ları yan yana yaz ve tek seferde kayıt et şeklinde olur. Programında kayıt ile alakalı bir şey yok olsa bakıp ne olduğunuda belki anlayabilirdik. Bildiğim kadarı ile ID no ları değişmez. Sen ancak üye ID si kayıt edebilirsin. Üye sayın 256 dan fazla ise her üye için çift byte numaralandırma sistemi kullanman gerekir. Bu durumda üye numaraların word cinsinden olacaktır.
Ete

Hocam gönderdiğim program kartı okutunca bana 51 69 48 48 69 57 66 68 54 51 48 57 bilgilerini veriyor. Bunların ascii karşılığı 3E00E9BD6309 seklinde oluyor. Bu kartı eproma en az hafıza birimini kullanarak nasıl kaydedebilirim sorumun amacı bu idi . ( Ascii karşılıklarını tablodan bakarak el ile yaptım)

ete

12 Byte şeklinde gelen ID bilgisi daha az yer kullanılarak kayıt edilemez.
Yapabileceğin tek bir şey var. Aynı firmanın kartlarını kullanırsan en azından yanlızca sondaki byte değişebilir.
Böylece sende yanlızca değişen bilgiyi kayıt edersin. Bu 1 byte da olabilir 2 byte da olabilir. Ama 12 Byte kayıt yapmaktan iyidir en azından.
Birden fazla kartı okutman ve neler değişiyor bakıp farkı görmen gerekiyor. Hepsi bir birinden farklı ise yapacak bir şey yok 12byte olarakkayıt alman gerekiyor.

Ete

Powered by EzPortal