pic16f628a & f84a & 877a isis simülasyon

Başlatan armsistem, 23 Ağustos 2011, 00:01:23

armsistem

              Arkadaşlar selam , aşağıdaki kod tek kablo üzerinden veri göndermektedir , isis te simüle ettiğim zaman pic16f877a problemsiz olarak çalışmaktadır , fakat 84a veya 628a 'da çalışmamaktadır. Aşağıdaki kodu hitech c de çalıştırmak zorundayım ve daha yeniyim ,84a ve 628a için acaba kodda gözden kaçırdığım bir şeylermi var ? Yardımlarınız için şimdiden teşekkür ederim.

#include <pic.h>
#include <delay.c>
#define DI RB3 // RB3 pini kullanılarak data gönderiliyor


int count=0; // 1 byte=8 bit
unsigned char data=0x00; // gönderilecek verilerin atandıı deiken
unsigned char data_set=0x00; // bit_reset ve bit_set denetim deikeni
unsigned char mask=0x80;
void veri_yolla_rf(unsigned char veri_rf);

void p_width()
{
DelayUs(200); 
DelayUs(175); 
}


void send(data) 
{
while(count<=7)
{
data_set=data & mask;
if(data_set==0x80)
{
DI=1;
}
else
{
DI=0;
}
p_width();
if(count==7)
{
count++;
break;
}
data=data<<1;
count++;
}
count=0;
return;
}
void veri_yolla_rf(unsigned char veri_rf){
send(0x55); 
send(0x55);
send(0x55);
send(0x55);
send(0x55);
send(0x00); 
send(0x00);
send(0x00);
send(0x00);
send(0x00);
send(0xff);
send(0xff);
send(0xff);
send(0xff);
send(0xff);
DI=0; // stop biti
DI=1; // start biti
p_width();
send(veri_rf); // gönderilen data
DelayMs(250); // 500 ms gecikme
DelayMs(250);
}
void main(void)
{
TRISA=0xFF; 
TRISB=0X00; 
PORTB=0x00;
for(;;)
{
veri_yolla_rf(0x15);
}
}

armsistem

Delay.c dosyası aşağıda ,ondan kaynaklanabilir mi ?

- 'For Microchip 12C67x, 16C7x, 16F87x and Hi-Tech C' ibare yüzünden.

/*

high level delay routines - see delay.h for more info.

Designed by Shane Tolmie of www.microchipC.com corporation.  Freely distributable.
Questions and comments to webmaster@microchipC.com.
PICuWEB - Program PIC micros with C. Site has FAQ and sample source code.
www.microchipC.com.

For Microchip 12C67x, 16C7x, 16F87x and Hi-Tech C

*/

#ifndef __DELAY_C
#define __DELAY_C

#include <pic.h>


unsigned char delayus_variable;

#include	"delay.h"

void DelayBigUs(unsigned int cnt)
{
	unsigned char	i;

	i = (unsigned char)(cnt>>8);
	while(i>=1)
	{
		i--;
		DelayUs(253);
		CLRWDT();
	}
	DelayUs((unsigned char)(cnt & 0xFF));
}

void DelayMs(unsigned char cnt)
{
	unsigned char	i;
	do {
		i = 4;
		do {
			DelayUs(250);
			CLRWDT();
		} while(--i);
	} while(--cnt);
}

//this copy is for the interrupt function
void DelayMs_interrupt(unsigned char cnt)
{
	unsigned char	i;
	do {
		i = 4;
		do {
			DelayUs(250);
		} while(--i);
	} while(--cnt);
}

void DelayBigMs(unsigned int cnt)
{
	unsigned char	i;
	do {
		i = 4;
		do {
			DelayUs(250);
			CLRWDT();
		} while(--i);
	} while(--cnt);
}

void DelayS(unsigned char cnt)
{
	unsigned char i;
	do {
		i = 4;
		do {
			DelayMs(250);
			CLRWDT();
		} while(--i);
	} while(--cnt);
}

#endif

M_B

Merhaba 16F628 icin

void main(void)
{
TRISA=0xFF;
 TRISB=0X00;
 PORTB=0x00;

kısmına
CMCON=0x07;  kodunu eklemen lazım.
Kolay gelsin.
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

armsistem

isis sürekli warning veriyor 'memory location write hatası veriyor'

M_B

İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

armsistem

Dostum ilk olarak çok teşekkür ederim. Evet çalışıyor ama benim kodlarda aynı ,galiba mblab problem var tekrar yüklemem gerekiyor.

armsistem

'M_B' dostum , hangi derleyeci hangi versiyonu kullanıyorsunuz ? 

M_B

Kullandığım derleyici versiyonları
8.05  ve az oncede 9.81 de denedim sorunsuz calıstı.
Kolay gelsin
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

armsistem

mplab 8.76 + htpic lite mode 9.80 yükledim ayarlarını yaptım eski projelerimi çağırdımda hata veriyor __debug vs. bu normalmidir ?

ilhan_mkp

hocam yanlış anlamayın ama bişi soracağım 16f84ü profesyonel anlamda piyasada satışını yaptığınız işlerde kullanıyormusunuz hala örneklerin çalışmaların 16f84 ve 877 ile olması ne kadar doğru

armsistem

Selam , bir projede kullanmak için arkadaş zamanında bir pcb yaptırtmış ,877a ile adet fazla baştan onun üzerinden kurdum hatta lcd 'yi komple b portundan yönlendirmem zamanımı aldı o yüzden 877a ama karşı taraf adeti çok isteyince mecbur 84a veya 628a döndük maliyeti azaltmak için , piclerle çok eskiden uğraşmıştım o yüzden derleyeciler vs. problem şu an ciddi anlamda ARM öğrenmeye çalışıyorum , bölük pörçük soruların nedeni odur.