Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Microchip PIC => Konuyu başlatan: enteresan10 - 20 Nisan 2021, 21:55:39

Başlık: 18f4550 iki program hakkında
Gönderen: enteresan10 - 20 Nisan 2021, 21:55:39
#include <18F4550.h>                           
#use delay(crystal=20000000)
#define LED PIN_D0                             
void SisInit(void)
  {
      set_tris_d(0b11111110);                         
  }

void main(void)

  {
     SisInit ();
     
     while(TRUE)

           {
                  output_HIGH (LED);           
                  delay_ms (1000);               
                  output_LOW (LED);                 
                  delay_ms (1000) ;             
           }
}

#include <18F4550.h>                           
#use delay(crystal=20000000)
#define LED PIN_D0                             
#define BUTON PIN_B4                           
void SisInit (void)

 {
   set_tris_d (0b11111110);                           //PIN_D0 çıkış.
 }

void main (void)
 {
   SisInit ();

   while (TRUE)                                     
   
   {
    if (0 == input (BUTON))                     
      {
       output_high (LED);                       
      }

     else

     {
      output_low (LED);                         
     }

   }

}


Yukarıdaki iki program için 20MHz kristal kullanıyorum.
Birincisi kristalle çalışıyor. Kristali çıkarınca çalışmıyor.
İkinci program kristalli kristalsiz çalışıyor. Garip bir durum lütfen yardım edin :)
Başlık: Ynt: 18f4550 iki program hakkında
Gönderen: RaMu - 20 Nisan 2021, 22:18:57
Kristalsiz çalışanda
FCMEN //Fail Safe Clock Monitoring ve
IESO //Internal External Switch Over mode
aktif edilmiş ve kristali çıkarınca dahili osilatöre geçiyordur.
Başlık: Ynt: 18f4550 iki program hakkında
Gönderen: enteresan10 - 20 Nisan 2021, 22:22:10
Ccs üzeriden bunları nasıl pasif edebilirim RaMu hocam? Bu moda geçmesini istemesem...
Başlık: Ynt: 18f4550 iki program hakkında
Gönderen: enteresan10 - 20 Nisan 2021, 22:33:43
#include <18F4550.h>
#fuses NOMCLR
#fuses NOFCMEN                   
#fuses NOIESO
#use delay(crystal=20000000)
                         
#define LED PIN_D0                             
#define BUTON PIN_B4                           

void SisInit (void)

 {
     set_tris_d (0b11111110);                 
 }

void main (void)
 {
   SisInit ();

   while (TRUE)                                   
   
   {
    if (0 == input (BUTON))                 
      {
       output_high (LED);                       
      }

     else

     {
      output_low (LED);                       
     }

   }

}

Böyle yaptığımda düzeldi. RaMu hocam teşekkürler...