| Микроконтролери и електроника 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 на български |
|
| Автор: | 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 , ама нещо не мога да схвана за какво става на въпрос |
|
| Автор: | FiTTiLA [ Нед Май 21, 2006 1:47 pm ] | |||||||||
| Заглавие: | ||||||||||
Ами то тръгва на 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/ |
|