|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 4:19 pm
|
Страница 1 от 1
|
[ 8 мнения ] |
|
| Автор |
Съобщение |
|
kikoboy
Ранг: Минаващ
Регистриран на: Съб Май 20, 2006 4:43 pm Мнения: 8
|
 MSP430 - RTOS
Здравейте. Скоро направих две програми за MSP430f1232 на IAR - с едната правя запис на данните от ADC , а с другата прехвърлям данните чрез UART през RS232 , но двете програми работят отделно . Сега трябва да ги направа да работят паралелно(с операционна система за реалнао време RTOS), обаче от скоро се занимавам с тези неща и не знам как може да стане това . Много ще съм ви благодарен ако някой ми даде
някакъв пример с който се прави това нещо или ако може да ме насочи горе долу какво трябва да направа.
|
| Съб Май 20, 2006 5:41 pm |
|
 |
|
CM600
Ранг: Новодошъл
Регистриран на: Пет Окт 21, 2005 9:35 pm Мнения: 152 Местоположение: Варна
|
RTOS за бавното MSP ми се струва малко overkill. (не мога да си преведа overkill на български  ). Можеш да пращаш данните през серийния порт докато чакаш АЦП - то да конвертира, само трябва да си изчислиш добре времената.
_________________ LDAA
|
| Съб Май 20, 2006 8:30 pm |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
MSP430 има изключително добре развита система от прекъсвания. Направи поне единия процес да е на прекъсване - напр. ADC. Foreground-а да ти прави буферирането на резултатите и комуникацията.
|
| Съб Май 20, 2006 9:08 pm |
|
 |
|
kikoboy
Ранг: Минаващ
Регистриран на: Съб Май 20, 2006 4:43 pm Мнения: 8
|
В момента и дветре програми съм ги направил с прекъсвания , но както казах работят поотделно. Значи вие ми предлагате да ги направа да работат заедно без RTOS така ли ?
|
| Съб Май 20, 2006 10:30 pm |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
По принцип всяка OS е тежка артилерия, особено RTOS. За MSP430 това не е оправдано. Аз бих го направил така:
1. ADC мери по прекъзване на някой таймер, като резултатите се записват в цикличен буфер. Процедурата за обработка на това прекъзване работи горе-долу така:
- чете резултата до регистрите на ADC;
- записва го в буфера, увеличава поинтера къде да запише следващия път; ако е излязъл извън буфера, нулира поинтера;
- стартира ADC;
- нулира маската за прекъсване от таймера;
2. Основната програма върти един безкраен цикъл:
- ако (указателят за четене на цикличният буфер != указателя за запис) && предавателят е свободен {
прочети резултата от буфера;
увеличи брояча за четене; ако е излязъл, нулирай указателя;
пусни го да се предава;
}
Това е достя схематично, не съм се задълбавал в синхронизациите между предаващия и приемащия и др. такива. Приеми го просто като нямаква опрестено решение. Успех!
|
| Нед Май 21, 2006 9:54 am |
|
 |
|
kikoboy
Ранг: Минаващ
Регистриран на: Съб Май 20, 2006 4:43 pm Мнения: 8
|
Виждам, че си доста запознат с нещата да приемем ,че си прав че rtos e твърде тежък вариант за MSP430, аз няма да го реализирам това с rtos , просто бих искал да знам как става . Ще можеш ли да ми кажеш принципно как става и от каде да прочета повече инфо за тези операционни системи за реално време. Ето тука има некакви неща за RTOS и msp430 http://scmrtos.narod.ru/downloads.html , ама нещо не мога да схвана за какво става на въпрос  . От линка по горе си свалих MSP430_v2.04a-beta , обаче нещо не мога да иа подкарам.
|
| Нед Май 21, 2006 12:44 pm |
|
 |
|
FiTTiLA
Ранг: Професионалист
Регистриран на: Сря Май 11, 2005 3:47 pm Мнения: 534
|
Ами то тръгва на DCO ( digital controlled oscillator) около 5MHz ( зора е че много зависи от температурата), ако твоята платформа работи с външен кварц за MCLK, трябва да пипнеш EXECUTE_PLATFORM_SPECIFIC_STUFF() в OS_Target.h (поне така изглежда на пръв поглед), където се сетват регистрите за това, ако пуснеш таск с UARTта и си на DCO, без външна синхронизация ( хората изпозват обикновенно 32768Hz кварц за да синхронозират DCOто) няма да оцелиш баудрейта, заради това че от температурата ще ти мърда MCLK а от там и baudrateта.
|
| Нед Май 21, 2006 1:47 pm |
|
 |
|
MYXATA
Ранг: Форумен бог
Регистриран на: Пон Юни 05, 2006 1:48 pm Мнения: 4906 Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
|
 Помня 4етох нещо по въпроса..
Из нетя има едно нещо Small Operating System...
но за MSP слушай хората..бавно е и се губи връзката realtime os(демек в реално време да обработва тасковете и да реагира..).Такова нещо за DSP'C54XX на TexassInstr. съм пробвал но пак за realtime os трудно става реч. При мене проблемацията беше,че се поддържаше dataexchange-то на ISDN стека. и там в рамките на 130 микросекудни требе да се следи флагове, ДМА,ТДМканали,прочие...о го забравих ОС-а разби'ш ли.. сичко на ръка сичко на асемблер.
_________________ ... ако трети ден не ти се работи... това означава, че е сряда !
|
| Чет Юни 22, 2006 1:03 pm |
|
|
|
Страница 1 от 1
|
[ 8 мнения ] |
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 13 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|