sacred_knight
Üye
- Katılım
- 15 Nis 2008
- Mesajlar
- 24
- Puanları
- 1
- Yaş
- 37
Mrb arkadaşlar, acil olarak yapmam gereken bi devre var. Nette bir uygulamasını buldum ama pic c lite ile yazılmış, bende micro c var. micro c'de hex dosyası oluşturmayı biliyorum ama pic c lite'ta bir türlü bulamadım. pic c lite, MPLAB kurdum beceremedim. Pic c lite programı olan birisi buraya kopyalacağım programı hex dosyası haline getirirse çok makbule geçer. Bende programı 12f675'e atabilirim.
#include <pic.h>
#include <delay.c>
#include <stdio.h>
#define BLED GPIO0 // Mavi LED GPIO0'a bağlı
#define GLED GPIO1 // Yeşil LED GPIO1'e bağlı
#define RLED GPIO2 // Kırmızı LED GPIO2'ye bağlı
// Konfigürasyon ayarları
// Dahili osilatör seçili, MCLR direnci yok
__CONFIG(MCLRDIS&WDTDIS&PWRTEN&INTIO);
void bekle(void){ // 1s'lik gecikme alt programı
unsigned char i;
for(i=0;i<5;i++){
DelayMs(200);
}
}
// Ton ve Toff süresi kadar bekle (Ton+Toff=10ms)
void bekle_on(unsigned char i){
unsigned char a;
for(a=0;a<i;a++){
DelayUs(39);
}
}
void bekle_off(unsigned char i){
unsigned char a;
for(a=0;a<255-i;a++){
DelayUs(39);
}
}
// ANA PROGRAM
main(void){
unsigned char i;
// Port ayarları
TRISIO=0x00; // Portların hepsini çıkış seç
CMCON=0x07; // Portları sayısal I/O olarak ayarla
ANSEL=0;
GPIO=0; // başlangıçta bütün çıkışları lojik 0 yap
// 3 ana rengi, 3 ara rengi ve beyaz rengi oluştur
RLED=1;GLED=0;BLED=0; bekle(); //Kırmızı
RLED=0;GLED=1;BLED=0; bekle(); //Yeşil
RLED=0;GLED=0;BLED=1; bekle(); //Mavi
RLED=1;GLED=1;BLED=0; bekle(); //Sarı
RLED=1;GLED=0;BLED=1; bekle(); //Mor
RLED=0;GLED=1;BLED=1; bekle(); //Turkuaz
RLED=1;GLED=1;BLED=1; bekle(); //Beyaz
GPIO=0;
// PWM sinyalinin görev periyodunu arttırıp azaltarak
// ışık şiddetini değiştir
// Adım adım kırmızı LED'in parlaklığını arttır
for(i=1;i<255;i++){
RLED=1;
bekle_on(i); // Ton süresi kadar bekle
RLED=0;
bekle_off(i); // Toff süresi kadar bekle
}
// Adım adım kırmızı LED'in parlaklığını azalt
for(i=255;i>0;i--){
RLED=1;
bekle_on(i); // Ton süresi kadar bekle
RLED=0;
bekle_off(i); // Toff süresi kadar bekle
}
} // Program sonu
#include <pic.h>
#include <delay.c>
#include <stdio.h>
#define BLED GPIO0 // Mavi LED GPIO0'a bağlı
#define GLED GPIO1 // Yeşil LED GPIO1'e bağlı
#define RLED GPIO2 // Kırmızı LED GPIO2'ye bağlı
// Konfigürasyon ayarları
// Dahili osilatör seçili, MCLR direnci yok
__CONFIG(MCLRDIS&WDTDIS&PWRTEN&INTIO);
void bekle(void){ // 1s'lik gecikme alt programı
unsigned char i;
for(i=0;i<5;i++){
DelayMs(200);
}
}
// Ton ve Toff süresi kadar bekle (Ton+Toff=10ms)
void bekle_on(unsigned char i){
unsigned char a;
for(a=0;a<i;a++){
DelayUs(39);
}
}
void bekle_off(unsigned char i){
unsigned char a;
for(a=0;a<255-i;a++){
DelayUs(39);
}
}
// ANA PROGRAM
main(void){
unsigned char i;
// Port ayarları
TRISIO=0x00; // Portların hepsini çıkış seç
CMCON=0x07; // Portları sayısal I/O olarak ayarla
ANSEL=0;
GPIO=0; // başlangıçta bütün çıkışları lojik 0 yap
// 3 ana rengi, 3 ara rengi ve beyaz rengi oluştur
RLED=1;GLED=0;BLED=0; bekle(); //Kırmızı
RLED=0;GLED=1;BLED=0; bekle(); //Yeşil
RLED=0;GLED=0;BLED=1; bekle(); //Mavi
RLED=1;GLED=1;BLED=0; bekle(); //Sarı
RLED=1;GLED=0;BLED=1; bekle(); //Mor
RLED=0;GLED=1;BLED=1; bekle(); //Turkuaz
RLED=1;GLED=1;BLED=1; bekle(); //Beyaz
GPIO=0;
// PWM sinyalinin görev periyodunu arttırıp azaltarak
// ışık şiddetini değiştir
// Adım adım kırmızı LED'in parlaklığını arttır
for(i=1;i<255;i++){
RLED=1;
bekle_on(i); // Ton süresi kadar bekle
RLED=0;
bekle_off(i); // Toff süresi kadar bekle
}
// Adım adım kırmızı LED'in parlaklığını azalt
for(i=255;i>0;i--){
RLED=1;
bekle_on(i); // Ton süresi kadar bekle
RLED=0;
bekle_off(i); // Toff süresi kadar bekle
}
} // Program sonu