Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: использование прерываний в MSP430
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
chainikru
Разработать программу приема одного байта последовательного кода, поступающего на вход INT0 в формате, старт бит, 8 бит данных(младшие биты впереди), стоп бит. Длительность одного бита 250 мкс. Прием байта осуществлять используя прерывания таймера. Принятый байт занести в ячейку с именем BYTE_IN
Подскажите пожалуйста как написать это на С++
oll
Цитата(chainikru @ Dec 18 2011, 23:58) *
Разработать программу приема одного байта...

может это поможет: http://www.msp430launchpad.com/2010/08/hal...-launchpad.html
rezident
chainikru, а вы уже ознакомились с периферией MSP430? Если да, то поясните вашему преподавателю, что не имеет смысла тупо переносить задание, придуманное пару десятков лет назад для МК 51й серии, на другие МК. Потому, что у "других" МК имеется соответственно другая (более продвинутая) периферия.
Если уж так приспичило реализовывать UART на прерываниях от пинов, то поясните, что функционал пинов INT0, INT1 в 51м МК несколько отличается от функционала прерываний пинов портов P1 и P2 в MSP430.
А если рассуждать дальше, то во всех MSP430 имеется TimerA, для которого уже давно придумано использование его функционала для приема/передачи данных аля UART. См. Implementing a UART Function with Timer_A3 (Rev. A). Более того, встроенная в MSP430 программа Bootloader-а (BSL) использует именно TimerA, чтобы реализовать UART и с его помощью организовать связь для загрузки firmware в кристалл. См. MSP430 Programming Via the Bootstrap Loader (BSL) (Rev. A) (+ исходники)
chainikru
Я то конечно поговорю но думаю что разговор закончится только перефрфзировкой задания:
Разработать программу приема одного байта последовательного кода, поступающего на вход P1 в формате, старт бит, 8 бит данных(младшие биты впереди), стоп бит. Длительность одного бита 250 мкс. Прием байта осуществлять используя прерывания таймера. Принятый байт занести в ячейку с именем BYTE_IN (или в другую)
MSP430 дали на самостоятельное изучение.Спасибо за сылки, но т.к. я не относился с должным вниманием к английскому, то прочтение и осмысление займет некоторое время, а поэтому я прошу дать советы при использовании TimerA. P.S. Я сначала хотел использовать сторожевой таймер.


т. к я писал на ассемблере для MCS51й серии у меня есть Р-схемы для задания.Существенно ли они будут отличаться для программы на c++ для MSP430 Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла
rezident
Ну раз с документацией вы не соблаговолили заранее ознакомиться, то что-либо пояснять прямо сейчас я считаю излишним sad.gif Изучайте вначале User's Guide. Их можно найти и в переводе на русской язык.
Хотя сразу могу дать один совет. Для вашей задачи не следует использовать WDT. Потому, что с его помощью нельзя задавать произвольные интервалы времени. Выбор интервалов очень сильно ограничен малым набором предделителей WDT. В то время как с помощью установок TimerA можно отсчитывать интервалы времени в очень широких пределах.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.