PIC24FJ256GB106 32MHZ çalıştırma

Başlatan ahmetgokce01, 18 Ocak 2017, 11:00:59

ahmetgokce01

sorun ne yaptıysam 8mhz nin üzerine çıkamadım harici 20mhz kristal kullanmak istersem fuses ayarlarım nasıl olmalı paylaşır mısınız.

ahmetgokce01

Merhaba arkadaşlar sorun  CCS C derleyici hatası, problem çözüldü.
CCS C version 5.007 olan derleyiciyi CCS C version 5.012 yükselttim şuanki haliyle 32 mhz olarak çalışıyor dikkat edilmesi gereken bir husuta void main den sonra
setup_oscillator(OSC_INTERNAL,32000000);
fonksiyonunu kullanmak, derleyicinin versiyonunu değiştirerek input olarak kullanamadığım giriş pinleride çalışmaya başladı.

bendeki çalışan haliyle oluşturulmuş kodları paylaşıyorum umarım yapacak arkadaşlara faydası olur.
#include <24FJ256GB106.h> 
#device ADC=16 
#device ICSP=1

#use delay(internal=32MHz)
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES NOJTAG                   //JTAG disabled
#FUSES CKSFSM                   //Clock Switching is enabled, fail Safe clock monitor is enabled
#FUSES FRC
#fuses DISUVREG                 //Internal USB 3.3V Regulator disabled

#include "mcp3424.c"
#include "ds18b20.c"

#use FIXED_IO( C_outputs=PIN_C13 )
#use FIXED_IO( D_outputs=PIN_D6,PIN_D5,PIN_D0,PIN_D11,PIN_D8 )
#use FIXED_IO( E_outputs=PIN_E6,PIN_E4,PIN_E5 )


#define ras   	PIN_C14
#define sm     	PIN_E0
#define lcd    	PIN_E6
#define pw     	PIN_D5
#define net   	PIN_D6
#define RI    	PIN_G8

#define in1    input(PIN_B9)
#define in2    input(PIN_B10)
#define in3    input(PIN_B11)
#define in4    input(PIN_B12)
#define in5    input(PIN_B13)
#define in6    input(PIN_B14)
#define in7    input(PIN_B15)

#define out1   PIN_E4
#define out2   PIN_E5
#define out3   PIN_D8
#define out4   PIN_C13
#define out5   PIN_D0
#define out6   PIN_D11

#pin_select U1TX=PIN_D1
#pin_select U1RX=PIN_D2
#use rs232(UART1, baud=9600, errors, stream=a)

#pin_select U2TX=PIN_G7
#pin_select U2RX=PIN_G6
#use rs232(UART2, baud=9600, errors, stream=b)

#pin_select U3TX=PIN_B6
#pin_select U3RX=PIN_B7
#use rs232(UART3, baud=9600, enable=PIN_F1, errors, stream=c)

#pin_select U4TX=PIN_B5
#pin_select U4RX=PIN_B4
#use rs232(UART4, baud=9600, enable=PIN_F0, errors, stream=d)

#use i2c(MASTER, I2C1, FAST, stream=I2C_PORT1)

#ZERO_RAM

#INT_RDA
void  rda_isr(void) 
{

}

#INT_RDA2
void  rda2_isr(void) 
{

}

#INT_RDA3
void  rda3_isr(void) 
{

}

#INT_RDA4
void  rda4_isr(void) 
{

}

void main()
{
   setup_oscillator(OSC_INTERNAL,32000000); 

   set_pulldown(FALSE, PIN_C14);
   set_tris_b(0xff);
  
   enable_interrupts(INT_RDA);
   enable_interrupts(INT_RDA2);
   enable_interrupts(INT_RDA3);
   enable_interrupts(INT_RDA4);
   enable_interrupts(INTR_GLOBAL);


   output_high(power_led);
   output_high(network_led);
   adc_init(0); //adresler 0'a çekili / adres:000  /
   while(TRUE)
   {
      //TODO: User Code
      
   output_toggle(power_led); 
   output_toggle(network_led);
   delay_ms(500); //TEST BING LED sönme ve yanık kalma süresi

   }

}

Murat Mert

S.A.
Yeni mcu larda main altında setuplardan sonra ayraların mcu tarafından yapılması için  min. 1000 ms koyun. 18F46k80 de bir problem yaşadım Forumdan Burak Demir tavsiye etti delay_ms(1000); ilacı oldu.
mert07

forsa1975

Kendi deneyimlerimden konu ile ilgili olabilecek iki gözlemim oldu.

Kristal giriş pinlerindeki 22 pf kondansatörler kaldırıldığında bütün problemlerin düzeldiği görülmüştür.
SMD üzerinde kod olmadığı için, belki de yanlış değerde olabilir.

Düzensiz çalışan ve dokunulunca reset alan devrelerde kristalin değiştirilmesi ile problemlerin çözüldüğü görülmüştür.