merhaba elimde msp430 launchpad var. C bilmediğim için bu vesile ile C'yi de öğrenmeye çalışıyorum. programda gcikme kullanmk istiyorum fakat hangi komut tam olar bilmiyorum. "delay_ms()" ve "sleep()" komutlarını kullandım fakat olmadı. Ne yapmam lazım?
IAR derleyici içinde delay gibi bir fonksiyon olmayabilir !
Kısa zamanlı gecikmeleri basit bir döngü ile yapabilirsin.
Uzun olanlar zaten "Delikanlı programcıyı bozar..."
Kolay gelsin...
programda şöyle birşey kullanıyorum gecikme için ;
for (i = 500; i > 0; i--);
dediğiniz gibi ise yani IAR de delay gibi bir fonksiyon yoksa biraz garip açıkcası. IAR kullanan arkdaşlar nasıl yapıyor acaba...
Alıntı yapılan: ramoon - 14 Mart 2011, 14:34:21
programda şöyle birşey kullanıyorum gecikme için ;
for (i = 500; i > 0; i--);
dediğiniz gibi ise yani IAR de delay gibi bir fonksiyon yoksa biraz garip açıkcası. IAR kullanan arkdaşlar nasıl yapıyor acaba...
Ben IAR kullanmıyorum fakat delay_ms() gibi bir fonksiyon da kullanmıyorum,
Bu açıkçası işlemciyi AŞIRI derecede BAĞLAYAN bi fonksiyon.
Görevler çok, Yola devam! kabilinden,
10 ms'de 1 kere oluşturduğum Timer Tick leri sayıyorum,,,
İstediğim adede varıncaya kadar diğer görevleri de yapabiliyorum.
"delay_ms" gibi bir fonksiyonu ancak "Yeni başlayanlar için" yazılmış Derleyiciler de bulabilirsiniz.
IAR, KEIL, GCC gibi sağlam derleyicilerde bulunmaz.
Bunun yanında RTOS veya Real Time Kernel lerde
"sadece o görevi" bekleten,
delay_tick()
sys_sleep()
sleep() gibi fonksiyonlar var.
Ama bunlar sadece o görevi bekletmeyi becerebilen sistemler...
Kolay gelsin...
yorumların için teşekürler..
IAR'da gecikme için __delay_cycles() fonksiyonu var. AVR'da kullanıyordum, MSP430 içinde olması lazım.
Bu fonksiyon değişken parametre almıyordu sanırım, sabit değer vermelisiniz.
Örnek, 16MHz kristalli AVR için;
__delay_cycles(16000000);
satırı 1 saniye gecikme yapar.
hocam işe yaramadır dediğiniz! şöyle bir hata mesajı alıyorum;
Building configuration: subram - Debug
Updating build tree...
main.c
Warning[Pe223]: function "__delay_cycles" declared implicitly C:\Documents and Settings\smurf\Desktop\msp\main.c 49
Linking
Error[e46]: Undefined external "__delay_cycles" referred in main ( C:\Documents and Settings\smurf\Desktop\msp\
Debug\Obj\main.r43 )
Error while running Linker
Total number of errors: 2
Total number of warnings: 2
Header dosyasını eklemen lazım, sanırım <inmsp.h>
#include <io430x20x1.h>
#include <inmsp.h>
kodu yukarıdaki şekilde ekledim yine hata mesajı verdi;
Building configuration: subram - Debug
Updating build tree...
main.c
Fatal Error[Pe1696]: cannot open source file "inmsp.h" C:\Documents and Settings\smurf\Desktop\msp\main.c 15
searched: "C:\Program Files\IAR Systems\Embedded Workbench 6.0 Evaluation\430\inc\dlib\"
searched: "C:\Program Files\IAR Systems\Embedded Workbench 6.0 Evaluation\430\inc\"
searched: "C:\Program Files\IAR Systems\Embedded Workbench 6.0 Evaluation\430\inc\dlib\c\"
Error while running C/C++ compiler
Total number of errors: 2
Total number of warnings: 0
MSP430 kullanmadım ezbere hangi header dosyasında olduğunu bilmiyorum, fonksiyonu header dosyaları içinde aramayı deneyin, birinde çıkacaktır.
bakalım umarım bulurum
Hocam in430.h i eklemeniz gerekiyor.
#include "in430.h"
Alıntı yapılan: fatihinanc - 15 Mart 2011, 08:09:41
Hocam in430.h i eklemeniz gerekiyor.
#include "in430.h"
sağol fatih hocam aradığım buydu. msp430 ile ilgili yazılarınızı takip ediyorum. lauchpad ile ilgili bir iki devre yapmayı düşünüyorum bende. ama önce şu C yi öğrenmem lazım :D