Я пишу диплом и перед мной поставлена задача запрограммировать МК,этим я раньше не занимался.
поэтому возникает множество вопросов, надеюсь здесь получить на них ответы и умные советы.
а вот и сама Задача:
1. Написать программу для микроконтроллера ATmega128L-8AU, принимающую и передающую данные по интерфейсу RS422.
Прием данных по стандарту NMEA 0183: $HEHDT, X.X,T*hh<CR><LF> // стандарт для морской навигации ,скорость передачи 4800 бод, формат передачи 8 бит +1 стоп бит. f = 1МГц. Асинхронно.
Здесь я настраиваю USART0 использую CodeWizardAVR. Проблем вроде нет.(картинка настройки во вложении,внизу)
здесь я сомневаюсь: Прием сигнала идет на одну ножку,я программирую DDRn=...(делаю ее входм),PORTn=....(подтяжку на нее) правильно, или надо еще какие нибудь настройки, чтобы прием данных шел только с одной ножки на USART0???
2. Преобразование входных данных о курсе в соответствующее значение sin α, cos α.
То есть если на входе α=45.5(курс ), то на выходе sin α= 0,7132; cos α= 0,7009;
Вопрос: - как получить данные из USART0, что бы записать их в переменную kurs???
- в то ли место я вставляю нижеследующий код???
- Код: Выделить всё • Развернуть
while (1)
{
float kurs,sin_k,cos_k;
if(1) //проверка условия на корректность сигнала, пока не сделано
{
if ((kurs>=0)&&(kurs<1))
{sin_k=0, cos_k=1};// преобразование курса в sin и cos
if ((kurs>=1)&&(kurs<2))
{sin_k=0.84,cos_k=0.54 };
...//и так далее проверка всего диапазона значений курса от 0 до 90.
if ((kurs>=89)&&(kurs<=90))
{sin_k=,cos_k=0.8939 };
}
else {};//если будет ошибка корректности,пока не сделано
};
Оптимальную ли я выбрал конструкцию сравнения?
И как далее передать значение sin и cos в буфер обмена???
3. Передача в формате 16 бит, причем последовательно!!! то есть сначала sin α на 16 ножек, потом cos α на эти же 16 ножек. И так каждый раз когда изменяется курс.(выходные сигналы поступают на 2 ЦАПа, так же в схеме используется демодулятор ,помоему, как раз для чередования выходных сигналов,но точно не уверен)
собственно, Как настроить такую передачу???
заранее спасибо.
____________________________________________________________