Страница 1 из 1

Atmega162 и comport

Добавлено: Чт июн 17, 2010 16:44:49
Дмитрий23
Здравствуйте! У меня такая задача:соединить компьютер и микроконтроллер через компорт. скорость9600, 1 стоп бит, 8 бит данных.
Я еще использую stk200. у него к порту B подключены индикаторы. Я передаю один байт. Сначала я фиксирую фактпередачи на индикаторе. Все хорошо! Следующим шагом я хочу в порт записать значение приемного буфера. Но ничего не отображается на индикаторах. Потом я отправляю обратно принятый байт, но он приходит неправильным.

Что делать, посоветуйте пожалуйста! Высылаю код программы на ассемблере!

Спасибо.

Re: Atmega162 и comport

Добавлено: Чт июн 17, 2010 16:57:26
Rimsky
Дмитрий23 писал(а):Здравствуйте! У меня такая задача:соединить компьютер и микроконтроллер через компорт. скорость9600, 1 стоп бит, 8 бит данных.
Я еще использую stk200. у него к порту B подключены индикаторы. Я передаю один байт. Сначала я фиксирую фактпередачи на индикаторе. Все хорошо! Следующим шагом я хочу в порт записать значение приемного буфера. Но ничего не отображается на индикаторах. Потом я отправляю обратно принятый байт, но он приходит неправильным.

Что делать, посоветуйте пожалуйста! Высылаю код программы на ассемблере!

Спасибо.
Я бы посоветовал открыть даташит, и посмотреть как правильно инициализировать UART. Наверняка там есть примеры. И константы задания символьной скорости расчитаны, есть таблицы. А так же примеры прием - передачи данных.

Re: Atmega162 и comport

Добавлено: Чт июн 17, 2010 20:27:41
GP1
Ну не мешало бы и стек инициализировать, да и прервания по USARTу заюзать, а может я и не прав :dont_know:

Re: Atmega162 и comport

Добавлено: Чт июн 17, 2010 22:17:19
Дмитрий23
Я как раз все сделал по даташиту!Сам прием есть, приемник заполняется!Но почему-то данные не те!

Re: Atmega162 и comport

Добавлено: Пт июн 18, 2010 07:03:36
Meteor
Мяу, GP1!
Автору.
В даташитах приводят пример с самим ресурсом, но в целом необходимо провести еще и настройку МК. См. описание прерываний - там первые строки после векторов настраивают стек.

Re: Atmega162 и comport

Добавлено: Пт июн 18, 2010 08:23:11
Дмитрий23
Программу как мне известно из даташита можно организовать и без прерываний! Просто проверия бит rxc0 в регистре!

Re: Atmega162 и comport

Добавлено: Пт июн 18, 2010 08:57:07
Meteor
Вам так сложно добавить в начале программы 4 строки?

Код: Выделить всё

RESET: ldi r16,high(RAMEND) ; Main program start
out SPH,r16 ; Set Stack Pointer to top of RAM
ldi r16,low(RAMEND)
out SPL,r16
Взято со стр 60 и 61 даташита
PS Заставлять работать с прерываниями никто не будет - сами придете, но инициировать стек это святое.