roboforum.ru

Технический форум по робототехнике.

серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"

Правила форума
В данном разделе каждый может иметь не более одной темы. Тема должна начинаться с логина (ника) робофорума.

Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"

Grem » 09 дек 2011, 02:24

KitaPro писал(а):А зачем?.. Их же уже не выпускают. Для обучения и знакомства с МП самое то

У нас в универе в чемоданах стоят такие. Жестокая хрень :D

Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"

KitaPro » 09 дек 2011, 07:35

Grem писал(а):У нас в универе в чемоданах стоят такие. Жестокая хрень :D

+1 У нас такие же чемоданы)

Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"

boez » 09 дек 2011, 11:53

А у меня на нем был первый в жизни ПК. Из тех еще, придуманных в конце 80-х, несовместимых ни с чем кроме самих себя, с бытовым телевизором в качестве моника и магнитофоном в качестве накопителя. Потом уже пошли спектрум, потом IBM PC, потом PIC, а потом AVR и TMS320.

Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"

Dmitry__ » 09 дек 2011, 12:05

boez писал(а):А у меня на нем был первый в жизни ПК. Из тех еще, придуманных в конце 80-х

И имя ему было радио86рк. И паяли их сами. И получались из этих людей классные специалисты :)

Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"

boez » 09 дек 2011, 14:42

Э не, 86РК был совместим с 86РК :) и под него было много всего! Но я был не настолько крут в электронике тогда, и деталей тех у нас было не купить. У меня был ПК-01 Львов, готовый купленный, у которого все было по-другому, начиная с видеоадаптера. И я ручками писал ему эмуляцию "системных вызовов" 86РК, чтобы там могли работать редактор и ассемблер от 86РК. До сих пор кстати не понимаю, как их создатели втиснули такую функциональность в 2 килобайта... Потом ручками же ассемблил написанное в машкод и командами бейсика POKE писал в ОЗУ. И только когда это завелось, получил возможность писать на асме с метками и т.п. :)

Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"

серж » 18 авг 2012, 02:22

почему протеус пишет ошибку в этой простой проге?
Код: Выделить всёРазвернуть
.includi "m8.def.inc"  ;
.cseg                               ;
   .org $0000                         ;
.def temp=r16                        ;
.def tempH=r17                       ;
.def tempL=r18                       ;
.dseg                                ;
.eseg                                ;
.cseg                                ;
;.equ BUT =PD0                       ;
.equ L1   = PB0                   ;na port B1 podklucen svetodiod
.equ L2 = PB1    ;
.equ L3 =  PB2     ;
rjmp reset                           ;
reset:                               ;
       ldi tempH,$04                 ;ob etom v dvuh slovah
       out SPH,tempH                 ;napisat mozno
       ldi tempL,$5F                 ;no poka rano
       out SPL,tempL                 ;prosto schitay eto neobhodimiy tipo include
;nastroyka portov
       ldi temp, 0b00000000          ;naznachaem port B1 vihod
       out DDRB, temp                ;ostalnie vhodi
       ldi temp, 0b00000000          ;0 na vihod port B1
       out portb, temp               ;
     ldi temp, 0b00000001
     out ddrd, temp                  ;
     ldi temp, 0b00000001            ; podnyazka na pin1
     out portd, temp                  ;
       sei                    ;idem na start
start:                               ;glavnaia programma
       sbis portd, BUT              ;schit knopki
       sbi portb, L1              ; vkl led1
      rjmp start                     ;       
       sbi portb, L2               ;
      rjmp start                     ;
       sbi portb,L3               ;
       ret
       

я тут пытаюсь вспомнить азы асма...
ошибок в коде вроде нет, а прот не хочет симулировать...
Последний раз редактировалось серж 18 авг 2012, 03:16, всего редактировалось 1 раз.

Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"

Dmitry__ » 18 авг 2012, 02:37

Ой, чо щаззззз будет..... :)

Я протеус снес :pardon:
Прога - каша полная, надо вована ждать, чем у вас все закончилось-то?

Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"

серж » 18 авг 2012, 02:48

ну с задержками мы уже работали... :wink:
боюсь вован волосы будет рвать... :oops:
ведь почти все с начала... :cry:

Добавлено спустя 1 минуту 40 секунд:
дим, после старта ошибок куча?

Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"

Dmitry__ » 18 авг 2012, 03:02

серж писал(а):дим, после старта ошибок куча?

Дохрена :cry:
У тебя в первом сообщении есть каркас программы.
Где include?
Где org?

Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"

серж » 18 авг 2012, 03:04

точно! ок
поправил.
но по ходу нуно ждать вована...

Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"

legion » 18 авг 2012, 15:40

Серж, опиши что у тебя к портам подключено и зачем. У тебя ошибки в инициализации портов, хотя протеус на них ругаться может и не будет.
А вот на "sbis portd, BUT" точно будет, у тебя определение BUT закомментировано.

Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"

серж » 18 авг 2012, 16:43

Код: Выделить всёРазвернуть
;задача заигать лед от кнопки. одно нажатие-1 лед2, второе на-лед и т.д.
.includi "m8def.inc"  ; мк мега
.list                        ; вкл листинга
     .cseg                               ;
       .org $0000                         ;
    .def temp=r16                        ;назначение рабочих регистров
    .def tempH=r17                       ;
    .def tempL=r18                       ;
    .dseg                                ;
    .eseg                                ;
    .cseg                                ;
    .equ BUT =PD0                       ;кнопка на порт Д1
    .equ L1   = PB0                   ;na port B1 podklucen svetodiod1
    .equ L2 = PB1                     ;na port B2 podklucen svetodiod2
    .equ L3 =  PB2                      ;na port B3 podklucen svetodiod3
    rjmp reset                           ;епреход к назначению раб регистров
    reset:                               ;
           ldi tempH,$04                 ;ob etom v dvuh slovah
           out SPH,tempH                 ;napisat mozno
           ldi tempL,$5F                 ;no poka rano
           out SPL,tempL                 ;prosto schitay eto neobhodimiy tipo include
    ;nastroyka portov
           ldi temp, 0b00000000          ;naznachaem port B1 vihod ostalnie vhodi
           out DDRB, temp                ;запись в рег
           ldi temp, 0b00000000          ;0 na vihod port B1
           out portb, temp               ;вывод порта б
         ldi temp, 0b00000001            ;пдорт д, пин1-вход
         out ddrd, temp                  ;запись в рег
         ldi temp, 0b00000001            ; podnyazka na pin1
         out portd, temp                  ;вывод порта д
           sei                    ;idem na start
    start:                               ;glavnaia programma
           sbis portd, BUT              ;schit knopki
           sbi portb, L1              ; vkl led1
          rjmp start                     ; на счит кнопки       
           sbi portb, L2               ;вкл лед
          rjmp start                     ;на счит кнопки
           sbi portb,L3               ;вкл лед3
           ret

Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"

legion » 18 авг 2012, 17:05

Начнем с портов. Работа с ними ведется через три регистра: DDRn, PORTn, PINn.
DDRn - направление порта, 0 - вход, 1 - выход.
Если порт настроен как вход, то он может быть с подтяжкой к + питания (PORTn = 1) или быть похожим на никуда не ведущий провод (PORTn = 0).
Если порт настроен как выход, то регистром PORTn задается уровень на ноге, низкий, т.е. земля (PORTn = 0) или высокий, т.е. + питания (PORTn = 1).
Из регистра PINn читают состояние ноги. Обычно, когда она настроена как вход. Но можно читать и когда нога - выход.

Правильнее было бы не писать это здесь, а просто дать ссылку на одну из статей учебных курсов, которых немало.

Теперь посмотри еще раз на свою инициализацию портов. И распиши словами что куда подключаешь, чтобы не запутаться.

Поправь ".include "m8def.inc""

Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"

серж » 18 авг 2012, 17:16

точно. все забыл!
должно бытб так
Код: Выделить всёРазвернуть
           ldi temp, 0b00000111          ;naznachaem port pin1,2,3 vihod ostalnie vhodi
           out DDRB, temp                ;запись в рег
           ldi temp, 0b00000000          ;potyazka ne nuno
           out portb, temp               ;вывод порта б
         ldi temp, 0b00000000            ;пдорт д, пин1-вход
         out ddrd, temp                  ;запись в рег
         ldi temp, 0b00000001            ; podnyazka na pin1
         out portd, temp                  ;вывод порта д
           sei                    ;idem na start

c определения выводов нуно начинать, а затем дальше...

Добавлено спустя 1 минуту 28 секунд:
я скачал белова и мотрона и у каждого инициализация потров по разному...

Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"

legion » 18 авг 2012, 17:22

В определении порта д осталась ошибка.


Rambler\'s Top100 Mail.ru counter