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ı..
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
}
}
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?
Mrb(http://img151.imageshack.us/img151/9500/dilimdilim2ge7ak5.jpg) (http://imageshack.us)
#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
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.