Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

12F675 MCLR ve Dahili Osilatör

Başlatan debi, 26 Ocak 2008, 10:25:36

debi

1 -Arkadaşlar 12F675 deki dahili oslatörü CCS C dilinde nasıl kullanabilirim?
setup_oscillator(osc_4mhz);
Şayet ki bu komut ise komut nereye gelecek;;
#
#
#
void(){
bla
bla
}

2 - Bu MCLR ucunu giriş ucu olarak kullanmak istiyorum.. Bunu nasıl yapabilirim?
#fuses NOMCLR
sadece bu komutu kullandım fakat olmadı..

M_B

Merhaba arkadas umarım asagıdakı kod ısıne yarar.
Birde entegrenin DataSheetini incelemeni tavsiye ederım.
Kolay gelsın

#include <12F675.h> 
#device ADC=10 
#fuses INTRC_IO,NOWDT,NOPUT,NOPROTECT,NOCPD,NOMCLR 
#use delay(clock=4000000) 
#define GP0 PIN_A0 
#define GP1 PIN_A1 
#define GP2 PIN_A2 
#define GP3 PIN_A3 
#define GP4 PIN_A4 
#define GP5 PIN_A5 
#byte OSCCAL = 0x90 

void init() 
{ 
OSCCAL = 0x80; // set internal oscillator to mid frequency 
set_tris_a( 0b11111101 ); // set GP1 output, all other inputs 
setup_comparator( NC_NC_NC_NC ); // disable comparators 
setup_adc_ports( NO_ANALOGS ); // disable analog inputs 
setup_adc( ADC_OFF ); // disable A2D 
} 
Void main() 
{ 
init(); 
while ( TRUE ) // blink LED 
{ 
output_high( GP1 ); // turn LED on 
delay_ms( 250 ); // wait 250ms 
output_low( GP1 ); // turn LED off 
delay_ms( 250 ); // wait 250ms 
} 
}
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

debi

Alıntı yapılan: "M_B"Merhaba arkadas umarım asagıdakı kod ısıne yarar.
Birde entegrenin DataSheetini incelemeni tavsiye ederım.
Kolay gelsın

#include <12F675.h> 
#device ADC=10 
#fuses INTRC_IO,NOWDT,NOPUT,NOPROTECT,NOCPD,NOMCLR 
#use delay(clock=4000000) 
#define GP0 PIN_A0 
#define GP1 PIN_A1 
#define GP2 PIN_A2 
#define GP3 PIN_A3 
#define GP4 PIN_A4 
#define GP5 PIN_A5 
#byte OSCCAL = 0x90 

void init() 
{ 
OSCCAL = 0x80; // set internal oscillator to mid frequency 
set_tris_a( 0b11111101 ); // set GP1 output, all other inputs 
setup_comparator( NC_NC_NC_NC ); // disable comparators 
setup_adc_ports( NO_ANALOGS ); // disable analog inputs 
setup_adc( ADC_OFF ); // disable A2D 
} 
Void main() 
{ 
init(); 
while ( TRUE ) // blink LED 
{ 
output_high( GP1 ); // turn LED on 
delay_ms( 250 ); // wait 250ms 
output_low( GP1 ); // turn LED off 
delay_ms( 250 ); // wait 250ms 
} 
}


Teşekkür ederim..Aşağısı içinde bilgi verebilirsen sevinirim..

#fuses INTRC_IO,NOWDT,NOPUT,NOPROTECT,NOCPD,NOMCLR
         dahili osilatör,watchdt,?????,kod koruma yok,???,mclr ucu iptal

#byte OSCCAL = 0x90    ?OSCCAL adında bir adres tanımı??

OSCCAL = 0x80 ?0x90 adresine 0x80 değerini yazma??

son olarak da setup_oscillator(osc_4mhz);
bu komutu void(){   den hemen sonra kullanıldığını gördüm... olabilir mi?

M_B

Mrb
#byte OSCCAL = 0x90 ?OSCCAL adında bir adres tanımı??
demek Picin Bank 1 de tanımlı olan OSCCAL ın adresi  (90)

OSCCAL = 0x80 ?0x90 adresine 0x80 değerini yazma??
80 degerını yazmak demek osc degerini ayarlıyorsun.
son olarak da setup_oscillator(osc_4mhz); 
bu komutu void(){ den hemen sonra kullanıldığını gördüm... olabilir mi?

bu konuda yorumum yok bilmiyorum.

Kolay gelsın
M_B

Onerım: DataSheeti incelemen sonrada PIC12F675.H dosyasını ıncele
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

ahmet2004

setup_oscillator(mode, finetune)

mode=
OSC_2MHZ OSC_4MHZ OSC_8MHZ OSC_32KHZ  vb..

finetune=
(only allowed on certain parts) is a signed int with a range of -31 to +31.

iç osilatörü daha kararlı hale getirmek için kullanılıyor.
bu registerleri değiştiriyor.
OSCCON = 0x8F
OSCTUNE = 0x90

Kullanımı bu şekilde.2.parametre kullanılmayabilir.Help dosyasında var bunlar.Hiç inceledinmi.