12f675 de serı haberlesme

Başlatan toprak0258, 11 Ocak 2013, 14:28:46

toprak0258

merhabalar....
12f 675 uzerıne deneme calısmalarımı surduruyorum...bu sefer alıcı verıcı yapmayı denedım...verıcı programı
#include <12f675.h>
#fuses INTRC,NOWDT
#use delay(clock=4000000)
#use fast_io(a)

#define LED1  pin_a0
#define buton1 pin_a4
#define buton2 pin_a1
#define buton3 pin_a2

#use rs232(baud=2400,xmit=pin_a5,parity=N,stop=1)

int x=0;

////////////////////////////////////////
void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_comparator(NC_NC);
   setup_vref(FALSE);

   
   setup_comparator(NC_NC_NC_NC);

   set_tris_a(0b011110);
   while(1)
   {
   if(input(buton1))
      {
        output_high(LED1);
        delay_ms(500);
        x=100;
        output_low(LED1);
        delay_ms(500);
      }
   if(input(buton2))
      {
        output_high(LED1);
        delay_ms(500);
        x=150;
        output_low(LED1);
        delay_ms(500);
      }
    puts(x);
    delay_ms(10);
   } 
}

guzel bır sekılde çalıştığını dusunuyorum ...cunku bır sorun gözukmuyor...ısıs te de osılaskop bağlayıp denedım...
alıcı noktasında aynı seyı soyleyemem ...derlerken herhangı bır sorun gozukmuyor...ama ısıste calışmıyor...programda sanırım verıyı tanımıyor...bu konuda coskun modılatorunde yapılan derlemeyede baktım ama yıne ıcınde cıkamadım...programı soyledır....#include <12f675.h>
#fuses INTRC,NOWDT
#use delay(clock=4000000)
#use fast_io(a)

#define LED1  pin_a0
#define LED2  pin_a1

#use rs232(baud=2400,rcv=pin_a2,parity=N,stop=1)

int veri;

////////////////////////////////////////
void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_comparator(NC_NC);
   setup_vref(FALSE);

   
   setup_comparator(NC_NC_NC_NC);

   set_tris_a(0b101100);
   output_a(0x00);
   while(1)
   {
    gets(veri);
    delay_ms(10);
   if (veri==100)
      {
        output_high(LED1);
        delay_ms(500);
        output_low(LED1);
        delay_ms(500);
      }
    if (veri==150)
   //else
     {
        output_high(LED2);
        delay_ms(500);
        output_low(LED2);
        delay_ms(500);
     }
   }


selamlar.....
Bilgi paylaşıldıkca değer kazanır.

xoom

kodlarınızı mesaj pencerisinde # simgesiyle [c ode][/c ode] tagleri arasına alırsanız daha anlaşılır olucaktır..

serhat1990

Merhabalar tam hatırlamamakla beraber , veri gönderim ve alımlarında "putc(x)" ve "x=getc()" yapısını kullanırmısın . Aynı zamanda veriyi içine yazdığın değişkeni "unsigned char x=0;"  yapabilirmisin . Sadece bir öneri ama tek byte gönderiyorsun . puts gets hatırladığım kadarıyla string ifadeler için geçerli.

İyi çalışmalar dilerim ...

toyo

VERİCİ KISIM
#include <12f675.h>

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES INTRC                       //Internal RC Osc, no CLKOUT
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOMCLR                    //Master Clear pin disabled
#FUSES NOCPD                    //No EE protection

#use delay(clock=4000000) 


#define LED1  pin_a0
#define buton1 pin_a3
#define buton2 pin_a1


#use rs232(baud=2400,xmit=pin_a2,parity=N,stop=1)

int veri=0;

////////////////////////////////////////
void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_comparator(NC_NC);
   setup_vref(FALSE);

   
   setup_comparator(NC_NC_NC_NC);

   //set_tris_a(0b011110);
   while(1)
   {
   if(input(buton1))
      { 
        output_high(LED1);
        delay_ms(500);
       
        output_low(LED1);
        delay_ms(500); 
         veri=0x6C;
      }
   if(input(buton2))
      { 
        output_high(LED1);
        delay_ms(500);
       
        output_low(LED1);
        delay_ms(500); 
        veri=0x7A;
      }
   putc(veri);putc(veri);putc(veri);
    delay_ms(10);
    veri=0;
   }  
}

ALICI KISIM

#include <12f675.h>

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES INTRC                       //Internal RC Osc, no CLKOUT
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOMCLR                    //Master Clear pin disabled
#FUSES NOCPD                    //No EE protection

#use delay(clock=4000000) 


#define LED1  pin_a0
#define LED2  pin_a1

#use rs232(baud=2400,rcv=pin_a2,parity=N,stop=1)

int veri;

////////////////////////////////////////
void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_comparator(NC_NC);
   setup_vref(FALSE);
output_a(0x00);
   
   setup_comparator(NC_NC_NC_NC);

   //set_tris_a(0b101100);
   //output_a(0x00);
   while(1)
   {
    
  if(getc()==0x6C)
      {
        output_high(LED1);
        delay_ms(500);
        output_low(LED1);
        delay_ms(500); 
      }
    if(getc()==0x7A)
  
     {
        output_high(LED2);
        delay_ms(500);
        output_low(LED2);
        delay_ms(500); 
     }
   }
} 




Denedim çalışıyor.
serhat1990 saygılar  :)
Gelirken ne getirilir ki giderken ne götürülür.

serhat1990

İşe yaradıysa ne mutlu bana Hocam :)

iyi çalışmalar dilerim ...

toyo

Yaramaz olurmu çok işimi gördünüz sağolun ..
Teşekkürler sizede iyi çalışmalar .. :D
Gelirken ne getirilir ki giderken ne götürülür.