Fonsiyonu çağırınca çalışmıyor ?

Başlatan kont, 27 Mart 2024, 06:06:24

kont

#include <xc.h>

// PIC12F675 konfigürasyon bitleri
#pragma config FOSC = INTRCIO  // Dahili osilatör, I/O fonksiyonu ile GP4/5
#pragma config WDTE = OFF       // Watchdog Timer kapal?
#pragma config PWRTE = OFF      // Power-up Timer kapal?
#pragma config MCLRE = OFF      // GP3/MCLR pinini MCLR olarak kullanma, GP3 olarak kullan
#pragma config BOREN = OFF      // Brown-out Reset kapal?
#pragma config CPD = OFF        // Data EEPROM bellek kod korumas? kapal?
#pragma config CP = OFF         // Program belle?i kod korumas? kapal?

#define _XTAL_FREQ 4000000  // 4 MHz iç osilatör frekans?

// Alarm sesi için gerekli tan?mlamalar
#define ALARM_PIN GP4 // Alarm sesinin ç?k?? pinini tan?mla (GP4 kullan?l?yor)

// Alarm sesi üretmek için kullan?lan fonksiyon
void Alarm_Sound() {
    for (int i = 0; i < 100; i++) {
        ALARM_PIN = !ALARM_PIN; // Alarm pinini aç/kapa
        __delay_ms(2); // 1 ms bekle
    }
    for (int i = 0; i < 100; i++) {
        ALARM_PIN = !ALARM_PIN; // Alarm pinini aç/kapa
        __delay_ms(4); // 2 ms bekle
    }
}



void main() {
  
    
    TRISIO = 0b00000100; // GP0 ve GP2'yi giri?, di?erlerini ç?k?? olarak ayarla
    GPIO = 0x00;   // Tüm pinleri dü?ük yap

    // GP4 pinini ç?k?? olarak ayarla
    TRISIO &= ~(1<<4); // GP4 pinini ç?k?? olarak ayarla
    GPIO &= ~(1<<4);   // GP4 pinini dü?ük yap

    while (1) {
        if (GP2) { // E?er GP2 yüksekse (alarm aktifse)
            Alarm_Sound(); // Alarm sesini üret
        } // Ana döngü içeri?i...
    }
}



Beyler alarm sistemi yapmaya çalışıyorum . alarm için oluşturduğum fonsiyonu çağırınca çalışmıyor neden ?  İsiste Smüle ediyorum.  GP2 koşulu kaldırıp direkt fonsiyonu sonsuz döngüyede çağırıyorum ama yine fonksiyondaki hareket gerçekleşmiyor. 

oguztkn

    Merhaba,

Aşağıdaki  bloğu kapatıp denermisin ?
   
    TRISIO &= ~(1<<4); // GP4 pinini ç?k?? olarak ayarla
    GPIO &= ~(1<<4);   // GP4 pinini dü?ük yap

kont

#2
CMCON = 0x07; // GP0 ve GP1 pinlerini dijital modda kullanmak için CMCON'u ayarla
   ANSEL = 0x00;// Analog Girişleri pasif et.

void main de bu iki fonksiyonu atlamışım. farkettim düzelttim. teşekkürler.