Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AT90CAN128
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
-=SY=-
Собственно, сабж.
Вроде как с ATmega128 похожи..., но получается, ИМХО, фигня.
Пробовал AVRstudio4.18 и IDA (выбирал Мега128) - дизасемблят почти одинаково, но помойму какая-то фигня получается (asm знаю). Прошива однозначно рабочая и проверенная. Но "раскрыть" не получается.
С AVR работал мало, но работал. Мож че не догоняю, но после дизасма почти все подпрограммы обращаются только к SPL, SPH и SREG и ВСЕ!!! Где настройки портофф, USART (они оба задействованы), CAN (тоже работает) ??????? не пойму....
Может посоветуете что-нить для кантролей с CAN или именно для этого МК ???
Спасибо.
KRS
Цитата(-=SY=- @ Aug 1 2010, 22:00) *
Собственно, сабж.
Вроде как с ATmega128 похожи..., но получается, ИМХО, фигня.

Они по ногам в принципе совместимы.
Но вот по регистрам - нет! Mega128 еще старый вариант, регистров доступных через IN, OUT, и побитно не хватило и их кое как распихали в память. Например таймерные прерывания от разных таймеров в одном регистре...
А CAN128 уже по новой схеме...
Но SP, SREG на тех же местах.
-=SY=-
Цитата(KRS @ Aug 2 2010, 01:26) *
Они по ногам в принципе совместимы.
Но вот по регистрам - нет! Mega128 еще старый вариант, регистров доступных через IN, OUT, и побитно не хватило и их кое как распихали в память. Например таймерные прерывания от разных таймеров в одном регистре...
А CAN128 уже по новой схеме...
Но SP, SREG на тех же местах.

Ну да, по регистрам не совсем катит... Но почему нету всяких там PORTA...PORTE, UBRR, UCSR, ведь все задействовано!!! и CAN тоже, где же он настраивается??? Возможна ли работа только через указатели r26...r31 ??? хотя я сильно сомневаюсь...

Вроде начал вкуривать....

Вот и настройки USART, я прав???

ROM:0000283C ldi r30, 0xC1
ROM:0000283D ldi r31, 0
ROM:0000283E st Z, r1
ROM:0000283F ldi r26, 0xC2
ROM:00002840 ldi r27, 0
ROM:00002841 ldi r30, 0xC6
ROM:00002842 ldi r31, 0
ROM:00002843 ld r24, Z
ROM:00002844 st X, r24
ROM:00002845 ldi r30, 0xC0
ROM:00002846 ldi r31, 0
ROM:00002847 ldi r24, 0x40 ; '@'
ROM:00002848 st Z, r24
ROM:00002849 ldi r30, 0xC2
ROM:0000284A ldi r31, 0
ROM:0000284B ldi r24, 6
ROM:0000284C st Z, r24
ROM:0000284D ldi r30, 0xC5
ROM:0000284E ldi r31, 0
ROM:0000284F st Z, r1
ROM:00002850 ldi r30, 0xC4
ROM:00002851 ldi r31, 0
ROM:00002852 st Z, r1

только как-то извращённо все это..... но мож быть из-за СИшного кода??? Компиляторы СИ любят такой изврат...
ucMike
Вариант для иды: В секции RAM ручками именуем регистры, согласно даташита.
Выбираем строчку RAM:00C1 , нажимаем клавишу N, вводим название - UCSR0B.
А в листинге в строчке 'ROM:0000283C ldi r30, 0xC1' щелкаем правой кнопкой мыши на '0xC1' и выбираем offset data.
-=SY=-
Разобрался, всем спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.