pioneer5900
Üye
- Katılım
- 15 Ara 2009
- Mesajlar
- 406
- Puanları
- 16
- Yaş
- 40
arkadaşlar konu sitede birçok yerde açılmış fakat incelediğim bütün çalışmalarda sıkıntılar var o yüzden konu açmayı ve çalıştıklarımı paylaşmak istiyorum.
#include <16F877.h>
#device adc=8
#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Crystal osc <= 4mhz
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected
#FUSES NODEBUG //No Debug mode for ICD
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
void main()
{
int sayi=0;
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
set_tris_b(0x00);
output_b(0x00);
while (1){
output_b(0xff);
printf("start\n");//başlangıçta bu stringi gönder
delay_ms(2000);
sayi=getc();//karakter al
if (sayi==1){//alınan karakter 1 ise aşağıdaki işlemleri sürekli yap
while(1){
output_b(0xff);
delay_ms(1000);
output_b(0x00);
delay_ms(1000);
printf("if\n");
}
}
else{ //alınan karakter 1 değilse aşağıdaki işlemi sürekli yap
while(1){
printf("else\n");
}
}
}//while için
}//main için
program basit sadece printf ile veri gönderip hyper terminalde ve indirdiğim terminal programında gözlemleyebiliyorum fakat iş veri almaya geldiğinde durumlar karışık..Yukarıda kodda birinci açılış metnini (start) hiç göndermiyor sonrada karakter almaya çalışıyor ama gönderiyorum istediğim işlemleri yapmıyor.stdio kütüphanesinide dahil ettim oda işe yaramadı..
ccs c de sadece gönderme ve alma ile ilgili alınan veriye göre bir işlem yapacak şekilde kod yazmak istiyorum şimdiden teşekkürler..
#include <16F877.h>
#device adc=8
#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Crystal osc <= 4mhz
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected
#FUSES NODEBUG //No Debug mode for ICD
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
void main()
{
int sayi=0;
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
set_tris_b(0x00);
output_b(0x00);
while (1){
output_b(0xff);
printf("start\n");//başlangıçta bu stringi gönder
delay_ms(2000);
sayi=getc();//karakter al
if (sayi==1){//alınan karakter 1 ise aşağıdaki işlemleri sürekli yap
while(1){
output_b(0xff);
delay_ms(1000);
output_b(0x00);
delay_ms(1000);
printf("if\n");
}
}
else{ //alınan karakter 1 değilse aşağıdaki işlemi sürekli yap
while(1){
printf("else\n");
}
}
}//while için
}//main için
program basit sadece printf ile veri gönderip hyper terminalde ve indirdiğim terminal programında gözlemleyebiliyorum fakat iş veri almaya geldiğinde durumlar karışık..Yukarıda kodda birinci açılış metnini (start) hiç göndermiyor sonrada karakter almaya çalışıyor ama gönderiyorum istediğim işlemleri yapmıyor.stdio kütüphanesinide dahil ettim oda işe yaramadı..
ccs c de sadece gönderme ve alma ile ilgili alınan veriye göre bir işlem yapacak şekilde kod yazmak istiyorum şimdiden teşekkürler..