STM32 Programlamada bekleme ile ilgili bir soru

Başlatan burak54, 07 Eylül 2015, 11:29:21

burak54

Merhaba arkadaşlar

/**
 *	Blinky project
 *
 *	@author 	Tilen Majerle
 *	@email		tilen@majerle.eu
 *	@version 	v1.0
 *	@gcc		v4.7 20013qr3
 *	@ide		CooCox CoIDE v1.7.6
 */
#include "stm32f4xx.h"
#include "stm32f4xx_rcc.h"
#include "stm32f4xx_gpio.h"

int main(void) {
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOG, ENABLE);
	GPIO_InitTypeDef GPIO_InitDef;

	GPIO_InitDef.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14;
	GPIO_InitDef.GPIO_OType = GPIO_OType_PP;
	GPIO_InitDef.GPIO_Mode = GPIO_Mode_OUT;
	GPIO_InitDef.GPIO_PuPd = GPIO_PuPd_NOPULL;
	GPIO_InitDef.GPIO_Speed = GPIO_Speed_100MHz;
	//Initialize pins
	GPIO_Init(GPIOG, &GPIO_InitDef);

	volatile int i;
    while (1) {
    	// Toggle leds
    	GPIO_ToggleBits(GPIOG, GPIO_Pin_13 | GPIO_Pin_14);
    	// Waste some tome
    	for (i = 0; i < 500000; i++);
    }
}


STM ARM Mikrodenetleyici programlamaya ve ogrenmeye yeni başlıyorum.İnternette araştırmalar yapıyorum. Örnek kodlara bakarken bu kodu gordum ve bazı kodlarda da gordugum gibi bir dongu kullanılmış zaman harcamak için neden Delay kullanılmamış . Bunun asıl sebebi nedir ? Bu konuda bilgisi olan bir arkadaşımız bilgi verebilirse sevinirim.Teşekkürler.

MrDarK

dediğin gibi delay kullansaydı kütüphane çağırması gerekecekti, ayrıca bekleyeceği süre büyük olasılıkla çok önemli değil onun için. O yüzden forla yapmak daha işine gelmiştir. Basit sonucta
Picproje Eğitim Gönüllüleri ~ MrDarK

Gökhan BEKEN

Dikkatinizi çekerim programı yazan abimiz Tilen Majerle, bu adamın stm32 ile yapmadığı uygulama kalmadı dense yeridir. Burdaki tek amacı led yakmayı göstermek olduğu için delay fonksiyonunu kullanıp kafa karıştırmak istememiş.
Bu site Majerle'nin kodlarından oluşuyor: http://stm32f4-discovery.com/
Özel mesaj okumuyorum, lütfen göndermeyin.

elektronart

Gökhan bekene katılıyorum, sadece led yakıp söndürmeyi anlattığı bir uygulamada böyle yapması normal. Eğitimin sonraki aşaması timer interruptlarıdır ve orada for döngüsünü de kaldırıp timer ile işlemciyi uyutuyordur muhtemelen.
Zamanlama önemli değilse kur döngüyü dönsün gitsin
Açık Elektronik

burak54

Arkadaşlar cevaplarınız için teşekkür ederim =)