S.A.
Herkese kolay gelsin.
Mikro c arm da daha önce CCS C de yaptığım bir şeyi yapamadım belki basittir ama çözmeye vasıl olamadım. Pini bir değişkene atamadım.
CCS de:
int kirmizi=pin_D0;
int beyaz=pin_D1;
void ledyak(int pin)
{
output_high(pin); delay_ms(500);
output_low(pin); delay_ms(500);
output_high(pin); delay_ms(500);
output_low(pin); delay_ms(500);
}
void main()
{
while(1)
{
ledyak(kirmizi);
ledyak(beyaz);
}
}
Discovery407 kit kullanıyorum üzerindeki ledleri kontrol ediyorum ama bu şekilde edemedim. Farklı bir metodu varsa yardımcı olursanız sevinirim. Kolay gelsin.
CCS C işte insanları bu şekilde sabitliyor. Ben de zamanıda kullanıp register erişimlerinde sorun yaşamaya başlayınca hemen bırakmıştım.
Öncelikle output_high diye bir komu yok mikroC 'de. Register bazında işlem yapmanız lazım pin durumlarını okumak ve değiştirebilmek için.
Diğer bir durumda ANSI C uyumu. Bir pini int diye tanımlayıp geçemezsiniz.
Hocam output microc de yok tamam tanımlıpin=1 yada 0 var orası tamam. Eğer mikroc de bunun benzeri bir komut yada önerilecek bir yol varmı yada kolaylık. Kulağı uzun yoldan tutmamak için. Aynı yöntemi CS pinleri içinde kullanıyorum kod kalabalığından kurtulmak ve sade bir yazım için.
Fonksiyonu sizin oluşturmanız lazım.
#define kirmizi 12
#define beyaz 13
void ledyak(char pin)
{
GPIOD_ODR|=(1<<pin); delay_ms(500);
GPIOD_ODR&=~(1<<pin); delay_ms(500);
GPIOD_ODR|=(1<<pin); delay_ms(500);
GPIOD_ODR&=~(1<<pin); delay_ms(500);
}
void main() {
GPIO_Digital_Output(&GPIOD_BASE,_GPIO_PINMASK_12|_GPIO_PINMASK_13);
while(1)
{
ledyak(kirmizi);
ledyak(beyaz);
}
}
Teşekkür ederim hocam deniyorum.
hocam tamam çok teşekkür ederim
Ccs c kullanmayin. Ansi uyumluligu yok.
mikroc arm a taşındım, ama bazı şeyler hemen olmuyor. Teşekkürler.