реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Начинающий Stage-1.01, ASM и разные Вопросы :)
Skovorodka[TEFAL...
сообщение Jul 30 2005, 08:07
Сообщение #1





Группа: Новичок
Сообщений: 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 например wink.gif)
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, и чего там еще. Если непокатит то что нужно изменить?


--------------------
Данная эксклюзия является подмножеством астрациональных супремативных
монотенных федоний кадонарного экстрафазория
Go to the top of the page
 
+Quote Post
Skovorodka[TEFAL...
сообщение Jul 30 2005, 08:09
Сообщение #2





Группа: Новичок
Сообщений: 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: Скелет программы скопирован с примера, всю математику и вывод на индикатор я понял (сидел в тетрадке изображал из себя МК wink.gif не понял некоторые куски кода только
.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 У мня еще много вопросов smile.gif по мере изучения буду спрашивать здесь надеюсь есть добрые люди помогут !


--------------------
Данная эксклюзия является подмножеством астрациональных супремативных
монотенных федоний кадонарного экстрафазория
Go to the top of the page
 
+Quote Post
Skovorodka[TEFAL...
сообщение Aug 1 2005, 05:35
Сообщение #3





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



Один вопрос решился. Копировать любой бит регистра позволяют команды BST, BLD
в бит аккумулятор регистра SREG (и обратно) тем самым можем переместить любой бит рег. на нужное место. Спасибо “nml” за подсказку
Вот что получилось:
bst r17,1 ;копирую первый бит в битовый аккум.
cbr r17,0b00000010 ;сбрасываю в ноль
bld r17,0 ;копирую из аккум. на нужное место
;аналогично только третьи бит ->первый бит
bst r17,3
cbr r17,0b00001000
bld r17,1


--------------------
Данная эксклюзия является подмножеством астрациональных супремативных
монотенных федоний кадонарного экстрафазория
Go to the top of the page
 
+Quote Post
*Roma*
сообщение Aug 1 2005, 06:40
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 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: Скелет программы скопирован с примера, всю математику и вывод на индикатор я понял (сидел в тетрадке изображал из себя МК wink.gif не понял некоторые куски кода только
.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 У мня еще много вопросов  smile.gif по мере изучения буду спрашивать здесь надеюсь есть добрые люди помогут !
*



reset:
ldi r16,$00 ;?
out sph,r16 ;?
ldi r16,$ff ;?
out spl,r16 ;?

данный кусок кода не более чем настройка указателя стека на ячейку памяти в озу с адресом 0х255, не помню скока в АТ90S8535 памяти но обычно стек настраивают на самую последнюю ячейки т.к. он в AVR-ках падающий.

.org $30 ;? - можна не писать просто расположение кода пометке reset по данному адресу. Повидимому освобождает первые 30 адресов под вектора прерываний.

Успеховsmile.gif
Go to the top of the page
 
+Quote Post
Skovorodka[TEFAL...
сообщение Aug 31 2005, 11:47
Сообщение #5





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



.....Otdix konchilsya, Skoro budu zadavat voprosi.
Programmator spayal (АП5) toka prochivat boyus, nefiga ne ponyal pro "FUSE's", chas budu chitat Doki....


--------------------
Данная эксклюзия является подмножеством астрациональных супремативных
монотенных федоний кадонарного экстрафазория
Go to the top of the page
 
+Quote Post
andrvisht
сообщение Aug 31 2005, 12:01
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064



Вот Вам ссылочка. Там для начинающих как раз то.
http://avr.nikolaew.org/
А с фузам нужно быть осторожнее. Это настройки тактового генератора, детектора питания, интерфейсов программирования ... Если что не так зальете - будет не весело.
Go to the top of the page
 
+Quote Post
BVU
сообщение Sep 1 2005, 08:07
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Лучше всего начинать изучение микропроцессоров/микроконтроллеров с базовой литературы, где рассматриваются 'гипотетические' устройства обладающие всеми свойствами современных 'встроенных систем'. Во первых это разовьет полное понимание о предмете. А во вторых появится базовые знания необходимые для расширения кругозора и становления как специалиста по данной тематике. Что не ограничит Вас использованием какого то конкретрого контроллера, а даст возможность рассматривать их как класс цифровых устройств.
Но только этими знаниями не обойдешся, необходимы и другие дисциплины по аналого-цифровой схемотехнике, программированию и хотябы основные знания ТРЦС и импульсной техники.

Желаю творческих успехов,
BVU


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
Antilogic
сообщение Sep 9 2005, 12:38
Сообщение #8





Группа: Новичок
Сообщений: 5
Регистрация: 13-08-05
Пользователь №: 7 598



Ага, начинайте изучать прямо сo строения атома, полупроводников, pnp npn переходов, транзистора, в конце концов :D


--------------------
AVRMicro.net - и ты можешь принять участие в продвижении сайта!
Go to the top of the page
 
+Quote Post
Petka
сообщение Sep 15 2005, 14:25
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(Skovorodka[TEFAL] @ Jul 30 2005, 11:09)
Значит стоит такая задача.
........

.cseg            ; А вот это я не понял в упор как оно работает
.org 0            ; Думаю что-то связанно с сбросом мк 
.........

надеюсь есть добрые люди помогут !
*


с точки начинаются директивы ассемблера (это не инструкции процессора, а просто указание компилятору как компилировать).

.cseg <- это обозначает что то, что ты дальше пишешь относится к сегменту кода, т.е. к памяти программ.
.org 0 <- обозначает что то что ты дальше напишешь располагается со смещением 0 (т.е. в начале сегмента) соответственно ".org 30" это непосредственное указание что код дальше расположен по адресу 30.
Go to the top of the page
 
+Quote Post
Skovorodka[TEFAL...
сообщение Nov 7 2005, 13:54
Сообщение #10





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



Все приехал блин, дошло дело до паяльника, спаял макетку, подрубил питание и встал.
Программа avreal программатор Аля 5 проводков с резисторами (чета stk200\300 не заработал, надо будет потыкать его еще ) Atemga8535 кварц 4 МГц.
Так вот прога говорит что все ок mega8535 detected список фузов мне выдает
Osccal = a4,a6,9b,9d
Bodlevel=1
Boden =1
Sut =2
Sksel =1
Blb1 =3
Blb0 =3
S8535 =1
Wdton = 1
Ckopt = 1
Eesave = 1
Bootsz = 0
BootRst = 1
Вроде пишет, стирает FLASH (vse ok говорит)

Вот только когда снимаешь дамп в нем полная каша
Кусок:
Код
:10000000FFFFFFFF02FFFFFFFFFFFFFFFFFFFFFFFD
:10001000FFFFFFE11AFFFFFFFFFF0DE10E0E0FE1F3
:1000200010E1FFFFFFFFFFE114E115FFFFFFFFE11C
:10003000FFFFFFFFFFFF36FFFFFFFFFFFFFF3FE177
:1000400040FFFFFFFFFF23E124E1FFFFFF4CFFFF25
:10005000FFFFFFE12AE12BE12CE12DE1FFFFFFE1B2
:1000600030E131E1646467E134E135E136E137E103
:1000700038FFFFFFFFE1FFFF7CE1FFFFFFFFFFE134
:1000800040E1FFFFFFFF83E1FFFFFFE146E147E1C2
:10009000FFFFFFFF9AE18BE14CFFFFFFFFFF9FE1B6
:1000A000D0E1B1E150FFFFFFFFFFFFE156FFAFE1FD
:1000B000B8E159E1FFFFDBE15CE15D5DFFE15EFF7F
:1000C000FFFFFFFFFFFFFFFFFFFFFFFFFFE1FFFF5E
:1000D00068E169E16AFFD6EB6CE16DE16EE16FE129
:1000E00070FFFFFFFFFFFFFFFFFFFFFFEC17EFE1D8
:1000F000F8FF79E17AE17BE17CE17DE17EE17FFF60
:10010000FFFF82FFFFFFFFFFFFFFFFFFFFFFFFFF7C
:1001100010E111E1FF14FFE10CE18DE18EE18FE1CF
:1001200090E191E192FF93E19494FFFFFFFF2EFF96
:10013000FFFFFFE13AE19BE13CE13A3D1EE19F9F79
:1001400040E1A1E1A2E1A3FFFFE1A5A2FFFFFFFFC4
:10015000A8E1FF52FFFF5BE1ACFFADE1AEAEFFFFF8
:10016000FF60FFE1B2B0FFFFFFFF75E1FFFFFFE1BE
:1001700078E1B9E1FFE1BBE1BCE1FFFFFFFFFFFF79
:10018000FFFFFFFF82E186FFFFFFFFFFFFE1C7E107
:1001900090E1C9E1CAFFFFFF8CE1CDE1CEE1CFFFE5
:1001A000FFE1D1FFFFFFFFFFA8FFFFFFFFFFFFE120
:1001B000D8E1F2FFFFFFFFFFDCE1DDE1FFFFBFE180
:1001C000E0FFFFFFFFFFFFFFFFE1E5E1E6FFFF13B9
:1001D000D0E1E9E1EAFFEBE1ECE1FFFFDCE1FFFF69
:1001E000FFFFFFE1E2E1F3FFFFE1EAFFFFFFFFFFB7

Причем снимаешь дамп несколько раз, делаешь сравнение файлов они всегда разные, процентов 80 различий

Кабель от LPT до платы 20см длиной
Люди помогите, скажите в каком направлении рыть, а то ваще звиздец полный.
А еще хотел спросить, hex фаил весит 23 053 байт (22,5кб)
Тогда на борту всего 8 кб – так должно быть или это Трабла???


--------------------
Данная эксклюзия является подмножеством астрациональных супремативных
монотенных федоний кадонарного экстрафазория
Go to the top of the page
 
+Quote Post
Petka
сообщение Nov 7 2005, 14:45
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата
' date='Nov 7 2005, 16:54' post='62158']
Все приехал блин, дошло дело до паяльника, спаял макетку, подрубил питание и встал.
Программа avreal программатор Аля 5 проводков с резисторами (чета stk200\300 не заработал, надо
......................
Кабель от LPT до платы 20см длиной
Люди помогите, скажите в каком направлении рыть, а то ваще звиздец полный.
А еще хотел спросить, hex фаил весит 23 053 байт (22,5кб)
Тогда на борту всего 8 кб – так должно быть или это Трабла???

1. Скорее всего в "5 проводках" причина несовпадения прочитанных данных. решить проблемму можно попробовав уменьшить скорость программирования (см. ключи AVREALа). или спаяв нормальный программатор.
2. Хекс файл содержит информайию в ХЕКС представлении,т.е. на один байт МИНИМУМ 2 символа, не считая контрольных сумм, адресов. переносов строк, и т.п.
Go to the top of the page
 
+Quote Post
Skovorodka[TEFAL...
сообщение Nov 8 2005, 16:04
Сообщение #12





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



ZARABOTALO!!!!
fishka bila s fuzami !
po umolchaniyu bilo
Sksel = 1
Sut = 2
to est kak ya ponel vnutrenie kvarz, cho ne est good
AVREAL -fCKSEL=f,sut=0
I vse poexalo kak nado !

Spasibo vsem kto otkliknulsya!
Otdelnoe spasibo za pomoch Serega (radiokot.ru)

To Petka:

Obyazatelno dodelayu STK kak tolko v nach radiomagazin (on u nas odin v gorode) postupyat xxxxАП5


--------------------
Данная эксклюзия является подмножеством астрациональных супремативных
монотенных федоний кадонарного экстрафазория
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 3rd July 2025 - 18:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01447 секунд с 7
ELECTRONIX ©2004-2016