pic'ten serial monitöre veri gönderemiyorum.

Başlatan isoment01, 27 Mayıs 2017, 09:47:11

isoment01

Alıntı yapılan: Adem AYDIN - 29 Mayıs 2017, 15:26:00
Çalıştırdım şahitlerim var. Şaka bir yana program veri alış veriş işini yapıyor gerekli ayarlamaları yapar gereksiz kısımları da çıkarırsın ben hemen atayım istedim tüm dosyalar ekte mevcuttur.
#device PIC18F4680
#device icd=true
#include <18f4680.h>
#include <stdio.h>
//#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#fuses XT,NOFCMEN,NOIESO,NOPUT,NOBROWNOUT,nowdt,NOPBADEN,NOLPT1OSC,NOMCLR,NOSTVREN,NOLVP,NOXINST,NODEBUG,NOPROTECT,NOCPB,NOCPD,NOWRT,NOWRTC,NOWRTB,NOWRTD,NOEBTR,NOEBTRB
#byte porta=5                 //PORTA Tanımlaması Yapıldı
#byte portb=6                 //PORTB Tanımlaması Yapıldı
#byte portc=7
#byte portd=8
#byte porte=9
#use fast_io(a)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)
#use fast_io(e)

#use delay(clock=4000000) // 4MHz kristal

//#use rs232 (baud=9600, xmit=pin_C6, rcv=pin_C7, parity=N, stop=1,stream=deneme)
#use rs232(baud=9600, xmit=PIN_c6, rcv=PIN_c7, parity=N, stop=1, bits=8, stream=ornek)
// RS232 protokolü ayarları belirtiliyor
char islem=0;

void main()
{
setup_psp(PSP_DISABLED); // PSP birimi devre dışı
setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı
setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
setup_adc_ports(NO_ANALOGS); // ANALOG giriş yok
setup_adc(ADC_OFF); // ADC birimi devre dışı
setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı
setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı

set_tris_a(0x00);             //PORTA'nın Tamamını Çıkış Yap
set_tris_b(0x00);             //PORTB'nin Tamamını Çıkış Yap
set_tris_c(0x80);             //PORTB'nin Tamamını Çıkış Yap
set_tris_d(0x00);
set_tris_e(0x00);

output_a(0x00);
output_b(0x00);
output_c(0x00);
output_d(0x00);
output_e(0x00);

printf("Hello world\r\n");
printf("\n************************************************");
printf("\n\r led kontrol ");
printf("\n\r************************************************");
printf("\n\n");
printf("\n\rIslem Seciniz:\n");
printf("\n\r------------------------------------------------");
printf("\n\r------------------------------------------------");
//printf("\n\rYapmak istediginiz islemi seciniz>");

  while(1)
{
printf("\n\rYapmak istediginiz islemi seciniz>\r");
delay_ms(250);
islem='a'; // islem değişkeninin içeriğini boş olarak ayarla
islem=getc(); // Seri port üzerinden gelen karakter islem değişkenine aktarılıyor
putc(islem); // RS232 üzerinden klavye'den girilen karakteri ekrana gönder.

if (islem=='R'||islem=='r') //Sağa döndürme işlemi seçildi ise
{
printf(ornek,"\r\nlambalar yanıyor...");
//putchar(ornek,"\r\n%c",islem);
output_c(0x02); //output_high(pin_c1);
delay_ms(500);
output_c(0x04); //output_low(pin_c1);
delay_ms(500);
output_c(0x00);
//if (kbhit()) break; //Seri portan bir veri alındı ise döngüden çık
}
}
}

hocam hemen bakıyorum :D cok tesekkur ederım

Adem AYDIN

ALLAH 'ın Dini Galip Gelmesi İçin (Malınızla ve Canınızla) Çalışın.

isoment01

Alıntı yapılan: Adem AYDIN - 29 Mayıs 2017, 17:48:41
Çalışıyor mu?
yarın ıste haber verecegım bı kac bısey daha deneyecegım zaten bunları halledersek devamı corap sokugu gıbı gelecek.

Powered by EzPortal