|
Начинающий Stage-1.01, ASM и разные Вопросы :) |
|
|
|
Jul 30 2005, 08:07
|
Группа: Новичок
Сообщений: 6
Регистрация: 30-07-05
Пользователь №: 7 213

|
Здесь я НЕ буду задавать вопросы типа AVR или PIC а может MCS-51 «С чего начать? Где скачать? Какие сайты для начинающих?» «ASM VS C++» «Где купить?» и тд. Изучаю работу Микроконтроллеров чисто для себя, так сказать для души. Хочу писать на Assembler. Так значит, что я имею: INFO: Книга: Evstifeev.Atmel.AVR.Tiny_Mega.Family DataSheet’s: AT90S8535.Full, ATmega8535.Full, Replacing AT90S8535 by ATmega8535 + разные мелкие доки. Сразу скажу с английским я так сказать не очень: В школе и в универе было «Отлично», при прочтении DataSheet’ов понимается процентов так 15-20%, в основном по картинкам и по смыслу догоняетя что к чему, (надобны как-нибудь электронный словарь достать lingvo например  ) Softaware: AVR Studio 4.11 SP3 Vmlab 3.11 free AvrReal PonyProg Hardware: ATmega8525, Кр1533ап5, АЛС318, 4MHz & 8MHz кварцы. Я думаю, что этого достаточно для начала. Сразу же первый вопрос: так как сначала я думал учиться на примере AT90S8535, заказал я его в магазине, пока ждал когда привезут (обещали 3 недели) узнал что этот МК сняли с производства теперь вместо него ATmega8535, через 2 месяца!!! привезли Atmegu За 185 р. Пришлось брать. Вопрос: можно ли прошивать (проги сложности типа: сложить два числа и выдать на Семисегментный индикатор результат) написаны для AT90 на Megu ? я так понял изменения коснулись управлением ADC, timer, USART, и чего там еще. Если непокатит то что нужно изменить?
--------------------
Данная эксклюзия является подмножеством астрациональных супремативных монотенных федоний кадонарного экстрафазория
|
|
|
|
|
 |
Ответов
|
Jul 30 2005, 08:09
|
Группа: Новичок
Сообщений: 6
Регистрация: 30-07-05
Пользователь №: 7 213

|
Значит стоит такая задача. 1. Организовать сложение двух чисел и индикацию младшей тетрады результата на семисегментном индикаторе HG2. На блоке управления располагаются кнопки и тумблеры. Кнопки SB2 и SB4 представляют собой младшие разряды первого слагаемого, т.е. возможен набор чисел от 0 до 3. Тумблеры SA4, SA5 представляют собой соответственно 3-й и 4-й разряды 2-го слагаемого, т.е. возможен набор десятичных чисел 0,4,8,12. На индикаторе высвечивать результат в шестнадцатеричном формате, т.е. 0...F. SB2: PINA,1 PORTC-на индикатор. SB4: PINA,3 PORTb,3 – транзюк на индикатор SA4:PIND,2 SA5:PIND,3 Вот Source: Скелет программы скопирован с примера, всю математику и вывод на индикатор я понял (сидел в тетрадке изображал из себя МК  не понял некоторые куски кода только .include "8535def.inc" ;--------------- .dseg .equ cod0=$64 ; Выделяю ячейки под коды семисегментов, .equ cod1=$65 ; а почему именно с этого адреса? И до какого .equ cod2=$66 ; можно? ……………… .equ codE=$72 .equ codF=$73 : ;--------------- .cseg ; А вот это я не понял в упор как оно работает .org 0 ; Думаю что-то связанно с сбросом мк rjmp reset ;? .org $30 ;? ;--------------- reset: ldi r16,$00 ;? out sph,r16 ;? ldi r16,$ff ;? out spl,r16 ;? ;--------------- ldi zl,$64 ;? ldi zh,$00 ;? ;Nastroika portov! ldi r16,$00 ; А вот интересно неиспользуемые выводы индикатора как лучше определить как входы или выходы что то все по разному говорят? out ddra,r16 ldi r16,$c out ddrb,r16 ldi r16,$ff out ddrc,r16 ldi r16,$00 out ddrd,r16 ;-----------------] Sbi portb,3 ;napruga na anod ;-----------------] ;Seven segmet Code ldi r16,$3f ; Загоняю коды в память sts cod0,r16 ldi r16,$06 sts cod1,r16 ……………… ldi r16,$71 sts codF,r16 ;--------------- m1: Организую вечный цикл in r17,pina ;считываю состояние кнопок in r18,pind ;считываю состояние тумблеров add r20,r17 ; Собсно складываю эти два числа add r20,r18 ;------------------ push zl ; Во а это крутая крутотень, когда я понял add zl,r20 ;как оно работает чуть со стула не упал ld r20,z ; блин круто получилось pop zl out portc,r20 ;Выводим результат на индикатор ldi r20,$00 ;Очищаем регистр где был результат Rjmp m1 ;Вечный цикл Прога работает, тока считает неправильно. «Кнопки SB2 и SB4 представляют собой младшие разряды первого слагаемого» А у меня по схеме они управляют Первым и Третьим битом то есть получаются цифры 0,2,8,10 Блин часа 2 не мог понять в чем фишка Есть 0000Х0Х0 => Надо 000000XX Как биты сдвинуть? я что то ваще не понял Приму любую помощь Заранее благодарен всем кто откликнется PS У мня еще много вопросов  по мере изучения буду спрашивать здесь надеюсь есть добрые люди помогут !
--------------------
Данная эксклюзия является подмножеством астрациональных супремативных монотенных федоний кадонарного экстрафазория
|
|
|
|
|
Aug 1 2005, 06:40
|
Участник

Группа: Новичок
Сообщений: 24
Регистрация: 17-06-05
Пользователь №: 6 089

|
Цитата(Skovorodka[TEFAL] @ Jul 30 2005, 12:09) Значит стоит такая задача. 1. Организовать сложение двух чисел и индикацию младшей тетрады результата на семисегментном индикаторе HG2. На блоке управления располагаются кнопки и тумблеры. Кнопки SB2 и SB4 представляют собой младшие разряды первого слагаемого, т.е. возможен набор чисел от 0 до 3. Тумблеры SA4, SA5 представляют собой соответственно 3-й и 4-й разряды 2-го слагаемого, т.е. возможен набор десятичных чисел 0,4,8,12. На индикаторе высвечивать результат в шестнадцатеричном формате, т.е. 0...F. SB2: PINA,1 PORTC-на индикатор. SB4: PINA,3 PORTb,3 – транзюк на индикатор SA4:PIND,2 SA5:PIND,3 Вот Source: Скелет программы скопирован с примера, всю математику и вывод на индикатор я понял (сидел в тетрадке изображал из себя МК  не понял некоторые куски кода только .include "8535def.inc" ;--------------- .dseg .equ cod0=$64 ; Выделяю ячейки под коды семисегментов, .equ cod1=$65 ; а почему именно с этого адреса? И до какого .equ cod2=$66 ; можно? ……………… .equ codE=$72 .equ codF=$73 : ;--------------- .cseg ; А вот это я не понял в упор как оно работает .org 0 ; Думаю что-то связанно с сбросом мк rjmp reset ;? .org $30 ;? ;--------------- reset: ldi r16,$00 ;? out sph,r16 ;? ldi r16,$ff ;? out spl,r16 ;? ;--------------- ldi zl,$64 ;? ldi zh,$00 ;? ;Nastroika portov! ldi r16,$00 ; А вот интересно неиспользуемые выводы индикатора как лучше определить как входы или выходы что то все по разному говорят? out ddra,r16 ldi r16,$c out ddrb,r16 ldi r16,$ff out ddrc,r16 ldi r16,$00 out ddrd,r16 ;-----------------] Sbi portb,3 ;napruga na anod ;-----------------] ;Seven segmet Code ldi r16,$3f ; Загоняю коды в память sts cod0,r16 ldi r16,$06 sts cod1,r16 ……………… ldi r16,$71 sts codF,r16 ;--------------- m1: Организую вечный цикл in r17,pina ;считываю состояние кнопок in r18,pind ;считываю состояние тумблеров add r20,r17 ; Собсно складываю эти два числа add r20,r18 ;------------------ push zl ; Во а это крутая крутотень, когда я понял add zl,r20 ;как оно работает чуть со стула не упал ld r20,z ; блин круто получилось pop zl out portc,r20 ;Выводим результат на индикатор ldi r20,$00 ;Очищаем регистр где был результат Rjmp m1 ;Вечный цикл Прога работает, тока считает неправильно. «Кнопки SB2 и SB4 представляют собой младшие разряды первого слагаемого» А у меня по схеме они управляют Первым и Третьим битом то есть получаются цифры 0,2,8,10 Блин часа 2 не мог понять в чем фишка Есть 0000Х0Х0 => Надо 000000XX Как биты сдвинуть? я что то ваще не понял Приму любую помощь Заранее благодарен всем кто откликнется PS У мня еще много вопросов  по мере изучения буду спрашивать здесь надеюсь есть добрые люди помогут ! reset: ldi r16,$00 ;? out sph,r16 ;? ldi r16,$ff ;? out spl,r16 ;? данный кусок кода не более чем настройка указателя стека на ячейку памяти в озу с адресом 0х255, не помню скока в АТ90S8535 памяти но обычно стек настраивают на самую последнюю ячейки т.к. он в AVR-ках падающий. .org $30 ;? - можна не писать просто расположение кода пометке reset по данному адресу. Повидимому освобождает первые 30 адресов под вектора прерываний. Успехов
|
|
|
|
Сообщений в этой теме
Skovorodka[TEFAL] Начинающий Stage-1.01 Jul 30 2005, 08:07 Petka Цитата(Skovorodka[TEFAL] @ Jul 30 20... Sep 15 2005, 14:25 Skovorodka[TEFAL] Один вопрос решился. Копировать любой бит регистра... Aug 1 2005, 05:35 Skovorodka[TEFAL] .....Otdix konchilsya, Skoro budu zadavat voprosi.... Aug 31 2005, 11:47 &-rey Вот Вам ссылочка. Там для начинающих как раз то.
h... Aug 31 2005, 12:01 BVU Лучше всего начинать изучение микропроцессоров/мик... Sep 1 2005, 08:07 Antilogic Ага, начинайте изучать прямо сo строения атома, по... Sep 9 2005, 12:38 Skovorodka[TEFAL] Все приехал блин, дошло дело до паяльника, спаял м... Nov 7 2005, 13:54 Petka Цитата' date='Nov 7 2005, 16:54' post=... Nov 7 2005, 14:45 Skovorodka[TEFAL] ZARABOTALO!!!!
fishka bila s fuza... Nov 8 2005, 16:04
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|