18f4550 iki program hakkında

Başlatan enteresan10, 20 Nisan 2021, 21:55:39

enteresan10

#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 :)

RaMu

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.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

enteresan10

Ccs üzeriden bunları nasıl pasif edebilirim RaMu hocam? Bu moda geçmesini istemesem...

enteresan10

#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...