hi tech c ile seri port rf iletişimi???

Başlatan ferdi0435, 08 Ocak 2012, 05:48:26

ferdi0435

iyi günler ...

aşağıda hitech c ile seri port iletişimi yaptım rf aracılıgı ıle alıcıda bır sorun yok cunku verıcı kısmında pınlere led baglayarak bunu test ettım...
sorun şu pc den serı olarak xsol veya xsag gelınce  pic wsag veya wsol gonderecek bunu rf olmayınca dırekt kablo ıle cozebılıyorum fakat rfyı uyandırmak ıcın yazdıgım fonksıyonu cagırınca kalk(); fonksiyonunu ıkıncı dongude  kıtlenıyor... iflerin içindekı pınlere baglı ledler  ile kıtlenmeyı gorebılıyorum..... kalk fonksiyonlarını kaldırınca calısıor fakat bu sefer rf alıcıyı uyandırma ımkanım olmuor ....acaba neden oluor ?



#include <stdio.h>
#include <pic.h>
#include"delay.h"
#include "usart.h"
#include <string.h>
__CONFIG(XT & WDTDIS & PWRTEN & BORDIS & LVPDIS & DUNPROT & WRTEN& DEBUGDIS & UNPROTECT);

/* A simple demonstration of serial communications which
 * incorporates the on-board hardware USART of the Microchip
 * PIC16Fxxx series of devices. */

 
void kalk(void)
{
	int i;
	char uyan[15]={'U','U','U','U','U',255,255,255,255,255,0,0,0,0,0}; //rf modül uyandırma
for(i=0;i<15;i++)
{
putch(uyan[i]);
}

}


void main(void){
	int i;

	char ver[3];
	char al='q';
	
TRISD=0x00;
PORTD=0x00;

	INTCON=0;// purpose of disabling the interrupts.

	init_comms();	// set up the USART - settings defined in usart.h

	// Output a message to prompt the user for a keypress	
	
	while(1){
		
		do
		{
			al=getch();
		}while(al!='x');
		
		
	for(i=0;i<3;i++)
{		
	ver[i]=getch();
	
		
}

			if (strncmp (ver,"sag",2) == 0)//kısa karakter karşılaştırılması 3 sayısı en az kaçtaensin
  {                                 //uygun olması gerektiğini belirtiyor

	//kalk();	//bunları kaldırınca calısıor ?????fakat bu sefer rf modulu uyandıramam???
	

printf("wsag");
PORTD=0;
RD2=1;

  }

 
  
				if (strncmp (ver,"sol",2) == 0)//kısa karakter karşılaştırılması 3 sayısı en az kaçtaensin
  {                                 //uygun olması gerektiğini belirtiyor

	//kalk();//bunları kaldırınca calısıor ?????fakat bu sefer rf modulu uyandıramam???

printf("wsol");

PORTD=0;
RD1=1;
  }

	al='q';
	
	}
}

ferdi0435


ErsinErce

void kalk(void)
{
   int i;
   char uyan[15]={'U','U','U','U','U',255,255,255,255,255,0,0,0,0,0}; //rf modül uyandırma
for(i=0;i<15;i++)
{
putch(uyan[i]);
}
}


şeklinde yazmadığınızdan olabilir

ferdi0435

hocam kod zaten oylede nedense burda cıkmamıs kod penceresınde yayımlamadıgım ıcın gozukmuordu

ErsinErce

putch içeriği nasıl peki? orada takılıyor anlaşılan

ferdi0435

putch(unsigned char byte) 
{
	/* output one byte */
	while(!TXIF)	/* set when register is empty */
		continue;
	TXREG = byte;
}

ErsinErce

yeni moda aynı konuyu 30 farklı yere açmak galiba, yaptığın hata putch da

Modlara not: bu konu silinebilir mi aynı mesajı her yere yapıştırıyor arkadaş anlaşılan

ferdi0435

hocam pardon ama alakasız yerlere yapıstırmıyorum  kımse cevp vermıor dıye bende bunla alakalı ne kadr yer varsa oraya soruyrum .....

ErsinErce

cevap gelmiyorsa biraz bekleyin, hâla cevap yoksa bilin ki cevap forumda önceden yazılmıştır.
alakasız yerler olmasa bile aynı şeyleri üst üste sormanızda bir mantık yok, birine cevap verilmediyse 99% diğerine de verilmez
diğer konuda cevaplar olduğundan bu konun silinmesi için burada cevap vermeyi düşünmüyorum
hatanızın nerede olduğunu biliyorsunuz zaten o bölüm üzerine yoğunlaşın

ferdi0435


Erol YILMAZ

Ferdi, öncelikle kolay gelsin,

Bu tarz devreleri yaparken öncelikle skobu alıyorum karşıma,
temiz masaya devreleri yatırıyorum.
Güç kaynağını da ayarlayıp ölçüm yapabileceğim noktaları ayarlıyorum.
Buraları bazen skop ile bazen ölçü aleti ile ölçe ölçe etki-tepki, etki-tepki
sağlayarak, beklentilerimi karşılamaya çalışıyorum.
Ben başka bir yol da bilmiyorum...
Şu ana kadar çevremde gördüğüm en iyi mühendisler de bu yolu kullanıyor.

Uzaktan teşhis zor iş, Müneccim olsa bile bu elektronikte baya zorlanır :)

Sende benim izlediğim yolu izle, Memnun olmazsan paran iade !

ferdi0435

#11
teşekkür ederim sagolun yardımla r ıcın  ...
hocamızın dedıggı gıbı sorun putch fonksıyondaymıs ıcını degıstırdım duzeldı garıp bır durum ama yınede kalk fonksıyonunu cagırınca calısmaması normalde ılk donguyu saglıor ıkıncıde nıye bır hata verıor anlamadım ama duzeldı sonucta elektronık tesadufı hatalarla dolu:D

bu arada skop ne oluor hocam??