IAR delay sleep sorunu

Başlatan subram, 14 Mart 2011, 03:36:19

subram

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?
http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

Erol YILMAZ

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...

subram

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...
http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

Erol YILMAZ

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...

subram

yorumların için teşekürler..
http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

controller

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.
Hesabım OG tarafından haksız bir şekilde pasif yapılmıştır.

subram

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
http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

controller

Header dosyasını eklemen lazım, sanırım <inmsp.h>
Hesabım OG tarafından haksız bir şekilde pasif yapılmıştır.

subram

#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
http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

controller

MSP430 kullanmadım ezbere hangi header dosyasında olduğunu bilmiyorum, fonksiyonu header dosyaları içinde aramayı deneyin, birinde çıkacaktır.
Hesabım OG tarafından haksız bir şekilde pasif yapılmıştır.

subram

http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

fatihinanc

Hocam in430.h i eklemeniz gerekiyor.

#include "in430.h"
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

subram

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
http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz