stm32f103 freertos register'a yazamama sorunu.

Başlatan Emre_Tuncay_, 12 Ocak 2019, 12:41:13

Emre_Tuncay_

Merhaba
Freertos öğrenmek için udemy'den bir kurs aldım.Denetleyici olarak stm32f103 IDE olarak keil kullanıyorum.Cubemx kullanmıyorum. Projeme freertos kütüphanelerini ekledim.Bir değişkeni 1 arttıran bir task oluşturdum.Debug yapınca taskın güzel çalıştığını gördüm.Daha sonra bir ledi toogle yapayım dedim bu kısımda çalıştıramadım.CMSIS kütüphanelerinin kullandım gpio ayarları için.Debug yaptığımda gpio registerlarının hiç değişmediğini gördüm. Task içinde veya main programımda register değerlerini değiştiremedim. Freertos kütüphanelerini ve task kodlarını kaldırdığım zaman gpio'yu istediğim gibi ayarlayabildim.
Yardımcı olurmusunuz.
Kodlarım.
#include "stm32f10x.h"                  // Device header
#include "FreeRTOS.h"                   // ARM.FreeRTOS::RTOS:Core
#include "task.h"                       // ARM.FreeRTOS::RTOS:Core
void Toplama(void *pvParameters);
void Cikarma(void *pvParameters);
int i=0;
int main(void)
{
	xTaskCreate(Toplama,"Toplama",100,NULL,1,NULL);
	xTaskCreate(Cikarma,"Cikarma",100,NULL,2,NULL);
	vTaskStartScheduler();
	
	GPIO_InitTypeDef  GPIO_InitStructure; 
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);

  GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_13;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
	GPIO_Init(GPIOC,&GPIO_InitStructure);
	GPIOC->ODR=0x1000;
	while(1)
	{
		
	}
}

void GPIOInit(void)
{

}	
void Toplama(void *pvParameters)
{
	while(1)
	{

	}
}
void Cikarma(void *pvParameters)
{
	while(1)
	{

	}
}

mylord92

Register ayarlarını yaptıktan sonra "vTaskStartScheduler();" fonksiyonunu çağırırsanız ve şayet register ayarlarınız doğruysa çalışacaktır. vTaskStartScheduler() çağırdıktan sonra kontrol kernele geçiyor çünkü. Main içinde vTaskStartScheduler() fonksiyonundan sonraki satırlara gidemezsiniz.

mufitsozen

vTaskStartScheduler cagrildiktan sonra freertos kontrolu alir. ondan sonraki kodlar calismaz.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

Emre_Tuncay_

#3
Evet dediğiniz gibi vTaskStartScheduler ı register ayarlarımdan sonra yazınca registerlara erişim sağladım.Teşekkürler.
Peki bu dediğiniz kesmeler içinde öylemi. Bir kesme oluştuğunda programım kesme alt programıan gidicekmi.

mufitsozen

#4
Alıntı yapılan: Emre_Tuncay_ - 12 Ocak 2019, 13:46:53Evet dediğiniz gibi vTaskStartScheduler ı register ayarlarımdan sonra yazınca registerlara erişim sağladım.Teşekkürler.
Peki bu dediğiniz kesmeler içinde öylemi. Bir kesme oluştuğunda programım kesme alt programıan gidicekmi.

freeRtos'un calisma felsefesini ve rtos kavramlarini ogrenmeden soru cevap bu konuyu ogrenemezsiniz. FreeRtos web sitesindeki referans ve kullanici manual'lari edinip, basindan sonuna kadar bir kere okuyunuz. Sorularinizin %90'nina cevap bulacaksiniz.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

Emre_Tuncay_


mufitsozen

Alıntı yapılan: Emre_Tuncay_ - 12 Ocak 2019, 16:58:31Tamamdır öyle yapayım. Teşekkürler.

Bu dokumanlari inceledikten sonra, soracaginiz sorulara yardimci olmaya calisirim.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

apsis

@Emre_Tuncay_ Handi eğimi satın aldığınızı söyleyebilir misiniz?
"Makineye Beyin" MEKATRONİK

Emre_Tuncay_

@apsis "Mastering FreeRTOS From Ground Up™ on ARM Processor" isimli dersi aldım.Ders iyi gidiyor eğitmenin ingilizce çok iyi ve anlaşılır.

OptimusPrime

Alıntı yapılan: Emre_Tuncay_ - 13 Ocak 2019, 01:49:51@apsis "Mastering FreeRTOS From Ground Up™ on ARM Processor" isimli dersi aldım.Ders iyi gidiyor eğitmenin ingilizce çok iyi ve anlaşılır.


 ::)
https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||