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