Değişken Tanımlama Sorunu!

Başlatan mesmert, 11 Nisan 2007, 19:20:44

mesmert

Merhaba arkadaşlar aşağıda tanımlama değişkenlerini kullandığımda  programda hatalara sebep oluyor bu değişkenleri equ 0x21 ile 0x79 arasında herhangi bir yere koyduğumda sorun çıkmıyor. Ama PIC 16F877
data sheette 0x20 ile 0x7F arası kullanabilir göstermiş daha önce böyle bir sorunla karşılaşan oldumu acaba yoksa ben mi yanlış kullanıyorum


Temp       equ 0x2a gibi kullanıyorum


sorun yaşadığım tanımlamalar

0x2A,0x2B,0x2C,0x2D,,0x2E,0x2F

0x3A,0x2B,0x2C,0x2D,0x2E,0x2F

0x3A,0x3B,0x2C,0x3D,0x3E,0x3F

0x4A,0x4B,0x4C,0x4D,0x4E,0x4F

0x5A,0x5B,0x5C,0x5D,0x5E,0x5F

0x6A,0x6B,0x6C,0x6D,0x6E,0x6F

0x7A,0x7B,0x7C,0x7D,0x7E,0x7F

XX_CİHAN_XX

0x20 ile 0x7F  arasında değişken tanımlıyabilirsin.
Cblock deyimini kullan istersen equ ıle bukadar uzun degısken acımında yazım hatası yapmış olabilirsin.

      Cblock       0x20
reg1, reg2, reg3, reg4, reg5, reg6, reg7, reg8
.
.
.
.
reg88, reg89, reg90, reg91, reg92, reg93, reg94, reg95, reg96
       ENDC
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

mesmert

Ben bu Microchip ürünlerinden hiç bir şey anlamadım hiçbir ürünü data sheet göre çalışmıyor.

XX_CİHAN_XX

Muhakkak gözünden kaçan birşey vardır.
16f877 nin tüm ram kapasitesini doldurmuştum hiçbir problem yaşamadım bahsettiğin aralıkta register açabilirsin.
İstersen tanımlama rutinini buraya yaz yada cok uzunsa bır yerlere upload et bir inceliyelim.
Birinci bank 96 diğer üç bankta 80 register alabiliyor(16f876-877)
ilk banktaki son 16 registere tüm sayfalardan ulaşılabiliyor.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

mesmert

Buraya ekliyorum download ile uğraşmaman için

;****************** ESITLEMELER **********************
RS				EQU	0X00	;
RW				EQU	0X01	;
EN				EQU	0X02	;

	

KEYBRD			EQU	0X21	;TUS SET DEGERI
;KEYBRD,0					;P1
;KEYBRD,1					;P2
;KEYBRD,2					;P3
;KEYBRD,3					;P4
;KEYBRD,4					;TUS BIR ONCEKI DURUM KONTROL BITI

KEYBRD1			EQU	0X22	;
;KEYBRD1,0					;P5
;KEYBRD1,1					;P6
;KEYBRD1,2					;P7
;KEYBRD1,3					;SET/ENTER TUSU
;KEYBRD1,4					;PRG TUSU

FLASH_OFF		EQU	0X23	;PROGRAM VEYA AYAR SEC TEKRAR IPTAL ETME REGISTERI
;FLASH_OFF,0				;FLASH ON AYAR REGISTERI
;FLASH_OFF,1				;FLASH OFF AYAR REGISTERI
;FLASH_OFF,2				;FLASH ON PRG REGISTERI
;FLASH_OFF,3				;FLASH OFF PRG REGISTERI

WASH_S			EQU	0X24
;WASH_S+1		EQU	0X25
;WASH_S+2		EQU	0X26

EXP1_S			EQU	0X27
;EXP1_S+1		EQU	0X28
;EXP1_S+2		EQU	0X29

EXP2_S			EQU	0X30
;EXP2_S+1		EQU	0X31
;EXP2_S+2		EQU	0X32

DRY_S			EQU	0X33
;DRY_S+1		EQU	0X34
;DRY_S+2		EQU	0X35

DRYC_S			EQU	0X36
;DRYC_S+1		EQU	0X37
;DRYC_S+2			0X38

WASHC_S			EQU	0X39
;WASHC_S+1		EQU	0X40
;WASHC_S+2			0X41

REF_POT			EQU	0X42
LM_TEMP			EQU	0X43
LM1_35			EQU	0X44
LM2_35			EQU	0X45

TUSKONTROL		EQU	0X46
;TUSKONTROL,0	WASH TUSUNA BASILIP BASILMADIGINI KONTROL EDER
;TUSKONTROL,1	VAC TUSUNA BASILIP BASILMADIGINI KONTROL EDER
;TUSKONTROL,2	EXP1 TUSUNA BASILIP BASILMADIGINI KONTROL EDER
;TUSKONTROL,3	EXP2 TUSUNA BASILIP BASILMADIGINI KONTROL EDER
;TUSKONTROL,4	DRY TUSUNA BASILIP BASILMADIGINI KONTROL EDER
;TUSKONTROL,5
;TUSKONTROL,6
;TUSKONTROL,7

OUTPUT			EQU	0X47	;4094 CIKIS BILGI OKUMA REGISTEREI
;OUTPUT,0 Q0 DC MOTOR SAG
;OUTPUT,1 Q1 DC MOTOR SOL
;OUTPUT,2 Q2 VAC MOTORU
;OUTPUT,3 Q3 EXP2
;OUTPUT,4 Q4 EXP1
;OUTPUT,5 Q5 DRY FAN
;OUTPUT,6 Q6 DRY REZISTANS
;OUTPUT,7 Q7 DEV REZISTANS

COUNTER_ON		EQU	0X48
;COUNTER_ON,0 WASH COUNTER AKTIF REGISTERI
;COUNTER_ON,1 EXP1 COUNTER AKTIF REGISTERI
;COUNTER_ON,2 EXP2 COUNTER AKTIF REGISTERI
;COUNTER_ON,3 DRY COUNTER AKTIF REGISTERI
;COUNTER_ON,4 FIRIN SICAKLIGINI DUSURUR 30 DEREEC KONTROL REGISTERI
;COUNTER_ON,5 FIRIN MEMORY SICAKLIK KONTROL REGISTERI	
;COUNTER_ON,6
;COUNTER_ON,7 INT 1SN ZAMANI DOLDUGUNDA 1 OLUR 

KANAL_R			EQU	0X49	;HANGI KANAL ISE O BITI 1 YAPAR DIGERLERI SIFIR
;KANAL_R,0 KANAL CLRF YAPILDIGI ICIN BASKA REGISTER KULLANILMAZ
;KANAL_R,1 KANAL 1
;KANAL_R,2 KANAL 2
;KANAL_R,3 KANAL 3
;KANAL_R,4 KANAL 4
;KANAL_R,5 KANAL 5
;KANAL_R,6 KANAL CLRF YAPILDIGI ICIN BASKA REGISTER KULLANILMAZ
;KANAL_R,7 KANAL CLRF YAPILDIGI ICIN BASKA REGISTER KULLANILMAZ

LCD_TEMP		EQU	0X50	;LCD KARAKTER GONDERME REGISTERI
BUZ1			EQU	0X51	;BUZER CALMA REGISTERI SAYMA DEGERI
TEMP4			EQU	0X52	;TUS OKURKEN PORTD HAFIZA REGISTERI
SANIYE			EQU	0X53	;FLASH ZAMAN REGISTERI
FLASH			EQU	0X54	;FLASH ON/OFF KONTROL REGISTERI
MERT			EQU	0X55	;BUTON KONTROL REGISTERI
TEMP0			EQU	0X56	;TUSA 7SN BASILI TUTULDUGU ZAMAN HIZLI SAYDIRMA BITI
KANAL			EQU	0X57	;KANAL KONUM REGISTERI
VERI			EQU	0X58	;4094 SERI BILGI GONDERME REGISTERI
VERI_S			EQU	0X59	;4094 VE 24CXX BIT COUNTER REGISTERI
K_PCLATH		EQU	0X60	;INT. ISLEMLERINDE KOPYA PCLATH
KW				EQU	0x61	;INT. ISLEMLERINDE KOPYA WORKING 
KSTATUS			EQU	0X62	;INT. ISLEMLERINDE KOPYA STATUS
SAYAC			EQU	0X63	;INT. ZAMAN SAYACI
LCD_REG1		EQU	0X64	;LCD LINE ILK BILGI REGISTERI
LCD_REG2		EQU	0X65	;LCD LINE SON BILGI REGISTERI
DC_MOTOR		EQU	0X66	;DC MOTOR SAG-SOL REGISTERI
ISLEM_FLASH		EQU	0X67	;

D_ILKON			EQU	0X68	;
;D_ILKON,0		SICAKLIK_1 ILK ACILISTA HAFIZA ALMA BITI
;D_ILKON,1		SICAKLIK_2 ILK ACILISTA HAFIZA ALMA BITI
;D_ILKON,2		REF_POT ILK ACILISTA HAFIZA ALMA BITI

LM1_SON			EQU	0X69	;LM1 SON OKUNAN DEGER HAFIZADA TUTMA
LM2_SON			EQU	0X70	;LM2 SON OKUNAN DEGER HAFIZADA TUTMA
REFPOT_SON		EQU	0X71	;REF_POT SON OKUNAN DEGER HAFIZADA TUTMA

DRYCEE_S		EQU	0X72	;EEPROM SICAKLIK DEGERI OKUR VE SAKLAR 
;DRYCEE_S+1		EQU	0X73; 

WASHCEE_S		EQU	0X74	;EEPROM SICAKLIK DEGERI OKUR VE SAKLAR
;WASHCEE_S+1	EQU	0X75

DERECE_1		EQU	0X2A
DERECE_1A		EQU	0X2B
DERECE_2		EQU	0X2C
DERECE_2A		EQU	0X2D
DERECE_3		EQU	0X2E
DERECE_3A		EQU	0X2F

SAYI1A			EQU	0X3A	;TIMER200ms / TIMER750us / 1 SN ZAMAN SAYAC VERISI
SAYI2A			EQU	0X3B	;TIMER200ms / TIMER750us / 1 SN ZAMAN SAYAC VERISI
SAYI3A			EQU	0X3C	;1 SN ZAMAN SAYAC VERISI / TUSU UZUN BASILDIGI ZAMAN HIZLI ARTIRMA 

ADDR_1			EQU	0X4A	;24CXX ADRESS REGISTERI
DATAO			EQU	0X4B	;24CXX OKUMA 
DATAI			EQU	0X4C	;24CXX YAZMA 
COUNT			EQU	0X4D	; 
TXBUF			EQU	0X4E	; 
EEPROM_1		EQU	0X4F	;

mesmert

Mplab problem olur diye Mplab 7.50 indirip kurdum sonuç yine aynı en güzel tespiti 4094 için output registeri var onu 0x2A'dan sonra herhangi başka bir registere alıncı seri bilgi 4094 iletmiyor...

XX_CİHAN_XX

Alıntı yapılan: "mesmert"Mplab problem olur diye Mplab 7.50 indirip kurdum sonuç yine aynı en güzel tespiti 4094 için output registeri var onu 0x2A'dan sonra herhangi başka bir registere alıncı seri bilgi 4094 iletmiyor...
Verdiğin örnekte bir problem yok.Mplabtada simule ettim hiç bir sorun yok bence programını iyi incele
MOVLW		0xCC
		MOVWF		OUTPUT
		
		MOVLW		0x01
		MOVWF		SAYI1A
		
		MOVF		OUTPUT,W
		MOVWF		SAYI2A

Bunu simule ettim register aktarımlarında hiç bir problem yok.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

mesmert

Merhaba,

CBLOCK - ENDC komutunu kullandım bütün sorunlar ortadan kalktı