ferdi0435
Üye
- Katılım
- 11 Ara 2010
- Mesajlar
- 10
- Puanları
- 1
- Yaş
- 35
[h=5]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);
}
}
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=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';
}
}[/h]
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);
}
}
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=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';
}
}[/h]