Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

Stm32F0 Kesme Oluşturamama?

Başlatan Bayramsumbul, 24 Ağustos 2013, 17:28:18

Bayramsumbul

Merhaba Arkadaşlar Başlıkta Olduğu Gibi Hiç Bir Timer'da Kesme Oluşturamıyorum.Kodum Budur;
#include <stm32f0xx.h>
#include "func.c"
#define	 Dacout DAC->DHR12R1
void TIM14_IRQHandler(void)
{
	TIM14->SR &= !1;
	GPIOC->ODR = 0x0300;
}
void Init()
{
	RCC->AHBENR |= RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOCEN;
	RCC->APB1ENR |= RCC_APB1ENR_DACEN;
	RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;
	GPIOA->MODER |= GPIO_MODER_MODER0;
	GPIOA->MODER |= GPIO_MODER_MODER2;
	GPIOA->MODER |= GPIO_MODER_MODER4;
	GPIOC->MODER = 0x55555555;
	GPIOC->OSPEEDR = 0xFFFFFFFF;
	DAC->CR |= DAC_CR_BOFF1;
	DAC->CR |= DAC_CR_EN1;
	ADC1->CR = 0x80000001;
	ADC1->CHSELR = 1<<0;
}
void Tim14Init()
{
	RCC->APB1ENR |= RCC_APB1ENR_TIM14EN;
	TIM14->DIER |= 1;
	TIM14->PSC = 4799;
	TIM14->CNT = 0xD8EF;
	TIM14->ARR = 0xD8EF;
	TIM14->CR1 |= 0x00000001;
}
int main()
{
	Init();
	Tim14Init();
	while(1)
	{
	}
}

Bir Türlü Kesmeye Girmiyor.Debug'da Sayım Yapıyor.Yeniden Yüklüyor.Nasıl Çözülür Bu Durum.Önerisi Olan Acaba Kesme Fonksiyonun İsmi Mi Yanlış
Bir Elektronik Meraklısının Serüveni...

yamak

while dan önce aiağıdaki komutu yazıp dener misin?

NVIC_EnableIRQ(TIM14_IRQn);

Bayramsumbul

Teşekkür Ederim.Ben Cortex-M0'larda Nvic Gibi bir Ayarlamanın Gerek Olacağını Düşünmemiştim.Bu Sadece M4'lerde Gerekli Diye Biliyordum.
Referans Klavuzunda Ya Yok Yada Ben Kaçırdım.Bu Ayarlama Çekirdekte Tanımlıymış. Galiba core_cm0.h Dosyasının İçinde.
Peki Bu Kesme Ayarlarını (Mesela Öncelik Veya Enable/Disable)Nerden Öğrenebilirim?Herhangi Bir Dosya VArmıdır?
Bir Elektronik Meraklısının Serüveni...

yamak

Hocam Cortex-M0 ın user manual ini inceleyebilirsiniz.Yada core_cm0.h dosyasını inceleyerek de öğrenebilirsiniz.