Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

MSP430 - RTOS
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=2388
Страница 1 от 1

Автор:  kikoboy [ Съб Май 20, 2006 5:41 pm ]
Заглавие:  MSP430 - RTOS

Здравейте. Скоро направих две програми за MSP430f1232 на IAR - с едната правя запис на данните от ADC , а с другата прехвърлям данните чрез UART през RS232 , но двете програми работят отделно . Сега трябва да ги направа да работят паралелно(с операционна система за реалнао време RTOS), обаче от скоро се занимавам с тези неща и не знам как може да стане това . Много ще съм ви благодарен ако някой ми даде
някакъв пример с който се прави това нещо или ако може да ме насочи горе долу какво трябва да направа.

Автор:  CM600 [ Съб Май 20, 2006 8:30 pm ]
Заглавие: 

RTOS за бавното MSP ми се струва малко overkill. (не мога да си преведа overkill на български :oops: ). Можеш да пращаш данните през серийния порт докато чакаш АЦП - то да конвертира, само трябва да си изчислиш добре времената.

Автор:  bateAz [ Съб Май 20, 2006 9:08 pm ]
Заглавие: 

MSP430 има изключително добре развита система от прекъсвания. Направи поне единия процес да е на прекъсване - напр. ADC. Foreground-а да ти прави буферирането на резултатите и комуникацията.

Автор:  kikoboy [ Съб Май 20, 2006 10:30 pm ]
Заглавие: 

В момента и дветре програми съм ги направил с прекъсвания , но както казах работят поотделно. Значи вие ми предлагате да ги направа да работат заедно без RTOS така ли ?

Автор:  bateAz [ Нед Май 21, 2006 9:54 am ]
Заглавие: 

По принцип всяка OS е тежка артилерия, особено RTOS. За MSP430 това не е оправдано. Аз бих го направил така:
1. ADC мери по прекъзване на някой таймер, като резултатите се записват в цикличен буфер. Процедурата за обработка на това прекъзване работи горе-долу така:
- чете резултата до регистрите на ADC;
- записва го в буфера, увеличава поинтера къде да запише следващия път; ако е излязъл извън буфера, нулира поинтера;
- стартира ADC;
- нулира маската за прекъсване от таймера;
2. Основната програма върти един безкраен цикъл:
- ако (указателят за четене на цикличният буфер != указателя за запис) && предавателят е свободен {
прочети резултата от буфера;
увеличи брояча за четене; ако е излязъл, нулирай указателя;
пусни го да се предава;
}

Това е достя схематично, не съм се задълбавал в синхронизациите между предаващия и приемащия и др. такива. Приеми го просто като нямаква опрестено решение. Успех!

Автор:  kikoboy [ Нед Май 21, 2006 12:44 pm ]
Заглавие: 

Виждам, че си доста запознат с нещата да приемем ,че си прав че rtos e твърде тежък вариант за MSP430, аз няма да го реализирам това с rtos , просто бих искал да знам как става . Ще можеш ли да ми кажеш принципно как става и от каде да прочета повече инфо за тези операционни системи за реално време. Ето тука има некакви неща за RTOS и msp430 http://scmrtos.narod.ru/downloads.html , ама нещо не мога да схвана за какво става на въпрос :( . От линка по горе си свалих MSP430_v2.04a-beta , обаче нещо не мога да иа подкарам.

Автор:  FiTTiLA [ Нед Май 21, 2006 1:47 pm ]
Заглавие: 

kikoboy написа:
Виждам, че си доста запознат с нещата да приемем ,че си прав че rtos e твърде тежък вариант за MSP430, аз няма да го реализирам това с rtos , просто бих искал да знам как става . Ще можеш ли да ми кажеш принципно как става и от каде да прочета повече инфо за тези операционни системи за реално време. Ето тука има некакви неща за RTOS и msp430 http://scmrtos.narod.ru/downloads.html , ама нещо не мога да схвана за какво става на въпрос :( . От линка по горе си свалих MSP430_v2.04a-beta , обаче нещо не мога да иа подкарам.


Ами то тръгва на DCO ( digital controlled oscillator) около 5MHz ( зора е че много зависи от температурата), ако твоята платформа работи с външен кварц за MCLK, трябва да пипнеш EXECUTE_PLATFORM_SPECIFIC_STUFF() в OS_Target.h (поне така изглежда на пръв поглед), където се сетват регистрите за това, ако пуснеш таск с UARTта и си на DCO, без външна синхронизация ( хората изпозват обикновенно 32768Hz кварц за да синхронозират DCOто) няма да оцелиш баудрейта, заради това че от температурата ще ти мърда MCLK а от там и baudrateта.

Автор:  MYXATA [ Чет Юни 22, 2006 1:03 pm ]
Заглавие:  Помня 4етох нещо по въпроса..

Из нетя има едно нещо Small Operating System...
но за MSP слушай хората..бавно е и се губи връзката realtime os(демек в реално време да обработва тасковете и да реагира..).Такова нещо за DSP'C54XX на TexassInstr. съм пробвал но пак за realtime os трудно става реч. При мене проблемацията беше,че се поддържаше dataexchange-то на ISDN стека. и там в рамките на 130 микросекудни требе да се следи флагове, ДМА,ТДМканали,прочие...о го забравих ОС-а разби'ш ли.. сичко на ръка сичко на асемблер.

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/