Ynt: ccs c rs232 sorunu lütfen yardım edin

Başlatan point_blank, 28 Ocak 2013, 20:05:59

point_blank

merhaba 16f877a ile e0 pinine baglı ledi yakıp söndürmek istiyorum bilgisayardan klavyeden b tusuna basınca e0 pinine baglı ledi yakmak istiom ama bir türlü olmadı pic kendini rsetliyor durmadan kodlar aşağıda mevcuttur yardım ederseniz sevinirim. Herkese tesekkürler
#include <16f877a.h>
#fuses xt,nowdt,nowrt,nodebug,nolvp,nocpd,noput,noprotect,nobrownout
#use delay(clock=4M)
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7,parity=N,stop=1)
char islem;
void main()
{
   setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
   setup_spi(SPI_SS_DISABLED);     // SPI 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ışı
   
   printf("\n\r ****************************************");
   printf("\n\r ***** E0 aktif icin (B) tusuna bas *****");
   printf("\n\r ****************************************");
   printf("\n\r ** E0 ve E1 aktif icin (İ) tusuna bas **");
   printf("\n\r ****************************************");
   printf("\n\r ***** Sondurmek icin (S)tusuna bas *****");
   printf("\n\r ****************************************\n\r");
   delay_ms(100);
   
   while(true)
      {
       islem=getch();

      if(islem=='b'||islem=='B')
       {
        printf("\n\r ++ E0 Yaniyor\n\r");
        output_high(pin_e0);
        delay_ms(100);
       }

      if(islem=='i'||islem=='İ')
       {
        printf("\n\r ++ E0 ve E1 Yaniyor\n\r");
        output_high(pin_e0);
        output_high(pin_e1);
        delay_ms(100);
       }
       
      if(islem=='s')
       {
        printf("\n\r -- E0 ve E1 Yanmiyor\n\r");
        output_low(pin_e0);
        output_low(pin_e1);
        delay_ms(100);
       }
      }
}

mesaj birleştirme:: 28 Ocak 2013, 20:07:12

devre hazır olarak var elimde isiste deniyorum çalışıyor ama devreye takınca pici durmadan while döngusunden önceki kısım ne yaparsam yapayım kendini tekrarlıyor while döngusunun içine grmiyor

point_blank

arkadaşlar lütfen yardım edin baskı devresi hersey hazır ama bir türlü yazılım calısmıyor

kudretuzuner

Merhaba
İsis şemasını vermeniz mümkün mü?
Amatör

Eren Eraslan

bağlantı şemasınıda gösterirsen iyi olur

reset atıyor derken her 100ms de bir
printf("\n\r ****************************************");
   printf("\n\r ***** E0 aktif icin (B) tusuna bas *****");
   printf("\n\r ****************************************");
   printf("\n\r ** E0 ve E1 aktif icin (İ) tusuna bas **");
   printf("\n\r ****************************************");
   printf("\n\r ***** Sondurmek icin (S)tusuna bas *****");
   printf("\n\r ****************************************\n\r");
   
bunumu görüyosun terminalde?
insanın içine işleyen şarkılar ;  https://soundcloud.com/reeraslan

yusuf3101

kardeş yeni max232 alıp denedin mi?

point_blank

#5
evet hep
printf("\n\r ****************************************");
   printf("\n\r ***** E0 aktif icin (B) tusuna bas *****");
   printf("\n\r ****************************************");
   printf("\n\r ** E0 ve E1 aktif icin (İ) tusuna bas **");
   printf("\n\r ****************************************");
   printf("\n\r ***** Sondurmek icin (S)tusuna bas *****");
   printf("\n\r ****************************************\n\r");
    bunu görüyorum örnegin klavyeden b tusuna basıyorum yine bu menüyü görüyorum isis devresi yok ben isis devreleri yapmıom cunku isisin simülasyonuna guvenmiyorum

mesaj birleştirme:: 29 Ocak 2013, 18:51:46

max232 alıp deneyemedim

skara1214

görünen o ki pic sürekli reset atıyor yazılımdan çok donanım hatası gibi geliyor 877a nın reset bacağını kontrol edermisin?ayrıca kristal kaynaklı birşeyde olabilir
Herkes ölür ama herkes gerçekten yaşamaz

point_blank

terminalde
printf("\n\r ****************************************");
   printf("\n\r ***** E0 aktif icin (B) tusuna bas *****");
   printf("\n\r ****************************************");
   printf("\n\r ** E0 ve E1 aktif icin (İ) tusuna bas **");
   printf("\n\r ****************************************");
   printf("\n\r ***** Sondurmek icin (S)tusuna bas *****");
   printf("\n\r ****************************************\n\r");
    bu menü geliyor daha sonra klavyeden herhangi bir tusa basınca pic reset atıp tekrar bu menüye geciyor

fatih6761

Alıntı Yapmax232 alıp deneyemedim
Araya MAX232 veya benzeri bir aygıt koymak zorundasınız. RS232 çıkışlarını PIC için TTL düzeyine getirmek gerekir. Yoksa pinlere VCC den fazla voltaj gider. Donanımsal olarak bu voltaj VCC üzerine aktarılır. PIC fazla voltajdan resetlenir.

point_blank

devrede max232 var iki tane max232 denedim ikisindede aynı sorunla karşılaştım

toyo

reset ucunu kullanıyorsan #fuses mclr,kullanmak istemiyosan #fuses nomclr yazmalısın.ben nomclr yazdığımda dahi picin kendini resetlediğini gördüm.mclr pinini 10k ile +5v çekersen sıkıntın kalmaz.
Gelirken ne getirilir ki giderken ne götürülür.

skara1214

devreyi biraz bozmuş olacaksın ama klavyeden hakkaten bastığının geri gittiğini tes etmen için pici çıkart tx-rx i kısa devre et eğer yazdığın geri geliyorsa ekrana demekki max232 haberleşmede sıkıntı yok

mesaj birleştirme:: 29 Ocak 2013, 19:21:36

Alıntı yapılan: toyo - 29 Ocak 2013, 19:19:01
reset ucunu kullanıyorsan #fuses mclr,kullanmak istemiyosan #fuses nomclr yazmalısın.ben nomclr yazdığımda dahi picin kendini resetlediğini gördüm.mclr pinini 10k ile +5v çekersen sıkıntın kalmaz.
877a da nomclr yapamıyorsun
Herkes ölür ama herkes gerçekten yaşamaz

toyo

877 de nomclr nin kullanılmadığını ilk defa duydum.  ???
reset pini boşta ise reset alıyor durduk yere,elimizi deydiğimizde felan. o pini kullanmıyorsan  10 k ile +5v çek
Gelirken ne getirilir ki giderken ne götürülür.

skara1214

valla hocam bende ilk defa sizde pin boştayken çalıştığını duydum :D.Yeni modellerde eklediler  nomclr yi ama eski 877a gibi modellerde şart ,çalışıyorsa bile şans eseri
Herkes ölür ama herkes gerçekten yaşamaz

point_blank

#14
reset pini boşta degil 10k ile 5volta cekilmiş durumda ayrıca dediğini yaptım rx ve tx kısa devre yaptım klavyeden karakter gönderdim gönderdiğim karakter geri yazdı ccs c pic compilerın terminalini kullnıom

mesaj birleştirme:: 29 Ocak 2013, 19:45:28

arkadaşlar max232 nin tx pinin cıkıs voltajı 73.5Mv  RX cıkısının ise 4.96volt tx cıkısında sıkıntı var galiba

mesaj birleştirme:: 29 Ocak 2013, 20:14:55

arkadaşlar yazılımla ilgili sıknıntı olabilirmi bi kontrol edebilirmisiniz kodları