Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: debi - 26 Ocak 2008, 10:25:36

Başlık: 12F675 MCLR ve Dahili Osilatör
Gönderen: debi - 26 Ocak 2008, 10:25:36
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ı..
Başlık: 12F675 MCLR ve Dahili Osilatör
Gönderen: M_B - 26 Ocak 2008, 11:42:01
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
}
}
Başlık: 12F675 MCLR ve Dahili Osilatör
Gönderen: debi - 26 Ocak 2008, 13:33:30
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?
Başlık: 12F675 MCLR ve Dahili Osilatör
Gönderen: M_B - 26 Ocak 2008, 16:05:54
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
Başlık: 12F675 MCLR ve Dahili Osilatör
Gönderen: ahmet2004 - 26 Ocak 2008, 18:25:53
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.