roboforum.ru

Технический форум по робототехнике.
Текущее время: 20 фев 2025, 21:53

Часовой пояс: UTC + 4 часа


Правила форума


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



Начать новую тему Ответить на тему  [ Сообщений: 423 ]  На страницу Пред.  1 ... 24, 25, 26, 27, 28, 29  След.
Автор Сообщение
 Заголовок сообщения: Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"
СообщениеДобавлено: 19 авг 2012, 01:47 
Не в сети

Зарегистрирован: 24 апр 2010, 14:47
Сообщения: 736
Откуда: Уфа
прог. языки: avr asm
Если в протеусе есть пошаговая отладка с просмотром всех регистров/портов/памяти мк - пользуйся ей. Я просто не знаю, что конкретно может протеус, не работал с ним. Дмитрий вот еще пугает, говорит - каша.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"
СообщениеДобавлено: 19 авг 2012, 01:52 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2011, 17:38
Сообщения: 589
Откуда: россия, череповец
пртотеус вещь кульная, советую! построчно ошибки показывает, сам хекс файлы делает. и много еще чего. ваще в электр прога незаменимая. сначало все виртуально, а потом и на железо.

Добавлено спустя 2 минуты 1 секунду:
в проте собираешь схему, пршиваешь мк, она те показывает как будет работать.... если будет работат.... и ошибки подскажет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"
СообщениеДобавлено: 19 авг 2012, 02:15 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Серж, нафиг людям советуешь протеус, когда они умеют работают в родной среде авра?
К глюкам в голове добавляются глюки протеуса :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"
СообщениеДобавлено: 20 авг 2012, 00:22 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2011, 17:38
Сообщения: 589
Откуда: россия, череповец
задача legion решена.
выполнил её так:
Код:
.dseg ;
.eseg ;
.cseg ;
.equ but =pd0
.equ led =pb0
.equ led1 =pb1
reset:
   ldi tempH,$04 ;neobhodimaia
   out SPH,tempH ;ustanovka
   ldi tempL,$5F ;dlia
   out SPL,tempL ;vseh MEG
   
 
   ldi temp, 0b00000011   ;pin0,pin1 vihodi
   out ddrb,temp           ;zapis v reg
   ldi temp,0b00000001    ; podt na pin0, led vkl
   out portb,temp         ;vivod na portb
  ldi temp,0b00000001   ;pin0 vhod
  out ddrd,temp          ;
  ldi temp,0b00000001    ; podt.na pin0
  out portd,temp         ;vivod na portd
   
start:
      cbi portb,led1 ;vikl led2
      sbic pind, but  ;propustit sled kom, esli kn nazata
      rjmp start    ; vozvrat
     m_1:
      sbis pind, but ; prop sled kom, esli kn otp
      rjmp m_1       ; ozidanie
    m_2:
      cbi portb,led  ;vikl led1
      sbi portb,led1 ;vkl led2
      sbic pind, but  ;propustit sled kom, esli kn nazata
      rjmp m_2        ;vozvrat k metke
   m_3:
      sbis pind, but  ; prop sled kom, esli kn otp
      rjmp m_3   ;
   m_4:
     
      rjmp reset     ;vozvrat k nachalu prog
     


Добавлено спустя 6 минут 53 секунды:
я с тини12 решил поиграть, но в инициализации ошибки пишет.
даю весь код (не дописан):
Код:
.def temp =r16
.def temp =r17
.def temp =r18
.dseg
.eseg
.cseg
.equ bortL = pb5        ;
.equ bortR = pb4        ;
.equ left_up = pb2      ;
.equ rith_up =pb1       ;
.equ left_doun =pb0     ;
.equ rith_doun =pb3     ;
reset:
   ldi tempH,$04 ;neobhodimaia
   out SPH,tempH ;ustanovka
   ldi tempL,$5F ;dlia
   out SPL,tempL ;vseh MEG
;nastr pinov porta
ldi temp, 0b00001111    ;pini 0-3 vihod
out ddrb, temp          ;zapis v reg
ldi temp, 0b00110110    ;podn na pin 1,2,dvig vpered i datchiki
out portb, temp         ; vivod portab
start:
    sbic pinb, bortL    ; esli net signala propustit sled komandu
    rjmp start          ; ozidanie
   m_1:
    sbic pinb, bortR    ;esli net signala propustit sled komandu
    rjmp m_1            ;ozidanie
   

и собсна то место, где ошибки выдает
Код:
  ldi tempH,$04 ;neobhodimaia
   out SPH,tempH ;ustanovka
   ldi tempL,$5F ;dlia
   out SPL,tempL ;vseh MEG

тут у меня знаний еще никаких нет. что к чему?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"
СообщениеДобавлено: 20 авг 2012, 01:18 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2254
Откуда: Екатеринбург
прог. языки: асемблер AVR
Не знаю никаких темпХ и темпЛ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"
СообщениеДобавлено: 20 авг 2012, 01:43 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2011, 17:38
Сообщения: 589
Откуда: россия, череповец
Radist, legion, а как бы вы выполнили иниц., тиньки?

Добавлено спустя 7 минут 24 секунды:
а! все! я эти строки закоментил и все заработало! :Yahoo!:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"
СообщениеДобавлено: 20 авг 2012, 01:44 
Не в сети

Зарегистрирован: 24 апр 2010, 14:47
Сообщения: 736
Откуда: Уфа
прог. языки: avr asm
Код:
  ldi tempH,$04 ;neobhodimaia
   out SPH,tempH ;ustanovka
   ldi tempL,$5F ;dlia
   out SPL,tempL ;vseh MEG

Этот код - установка указателя стека. Он двухбайтный, поэтому записвыаем старший байт и младший. Как правило его устанавливают на конец ОЗУ. У меги8 конец озу 0х045F. У других он может отличаться.
Тут использованы определенияы регистров tempH и tempL. Это не обязательно. Можно использовать первый попавшийся из старшей половины, тогда не придется каждый раз их определять. А еще в файле определений на каждый МК АВР (тот самый *def.inc) есть определение конца ОЗУ - RAMEND. Чтобы поделить его на старший и младший байт в ассемблере в студии есть функции High() и Low(). Хз, есть ли оно в протеусе, но попробуй. Код инициализации указателя стека в общем случае выглядит так:

Код:
LDI R16, High(RAMEND)
OUT SPH, R16
LDI R16, Low(RAMEND)
OUT SPL, R16


Что такое стек, зачем ему указатель и вообще про память прочитай здесь.

P.S: Код решения задачи позже посмотрю, но если работает, то молодец!

P.P.S: Стек вроде можно не инициализировать, если не используешь инструкции подпрограмм (CALL и прочие), прерывания и PUSH/POP.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"
СообщениеДобавлено: 20 авг 2012, 02:23 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2011, 17:38
Сообщения: 589
Откуда: россия, череповец
к прерываниям как раз и подхожу...
но эт попозже, пока так, с логикой асма покопаюсь.
и вобще - очюблагодарен за помощь и подсказки! :beer:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"
СообщениеДобавлено: 20 авг 2012, 17:14 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2011, 17:38
Сообщения: 589
Откуда: россия, череповец
всеп прив!
я пытаюсь реализовать простейшего бота на тии12.
в чем я облажался?
вот код:
Код:
;простейший бот на тини12
;задача-видим препятствие слева, то поворот вправо.
;препятствие справа - поворот влево.

.include "ATtiny12.inc" ;
.list   ;
.def temp =r16
.dseg
.eseg
.cseg
.equ bortL = pb5        ;датчик левого борта
.equ bortR = pb4        ;датчик правого борта
.equ left_up = pb2      ;левый борт вперед
.equ rith_up =pb1       ;правый борт вперед
.equ left_down =pb0     ;левый борт назад
.equ rith_down =pb3     ;правый борт назад
reset:
;nastr pinov porta
ldi temp, 0b00001111    ;pini 0-3 vihod
out ddrb, temp          ;zapis v reg
ldi temp, 0b00110110    ;podn na pin 1,2,dvig vpered i datchiki
out portb, temp         ; vivod portab
start:
   sbic pinb, bortL       ;если датчик не сработал,
   rjmp a                 ;пропустить эту команду.
   sbic pinb, bortR       ;если датчик не сработал,
   rjmp b                 ;пропустить эту команду.
   rjmp start             ;возврат на старт
  a:
   cbi portb, rith_up     ;выкл правый вперед
   sbi portb, rith_down   ;вкл правый назад
   sbis pinb, bortL       ;если датчик еще срабатывает,
   rjmp a                 ;то пропустить эту команду.
   rjmp start             ;возврат на старт.
b:
   cbi portb, left_up     ;выкл левый вперед
   sbi portb, left_down   ;вкл левый назад
   sbis pinb, bortR       ;если датчик еще срабатывает,
   rjmp b                 ;то пропустить эту команду.
   rjmp start             ;возврат на старт.
;  :Yahoo!:


подправил... :wink:


Последний раз редактировалось серж 20 авг 2012, 23:14, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"
СообщениеДобавлено: 20 авг 2012, 17:41 
Не в сети

Зарегистрирован: 24 апр 2010, 14:47
Сообщения: 736
Откуда: Уфа
прог. языки: avr asm
Код:
.devise tinny 12;
.no list    ;
.list   ;

Это все точно нужно? Откуда взял? И зачем исковеркал? Если нужно, то пишется это так:
.device ATtiny12
.nolist

Код:
reset:

;nastr pinov porta
init:

Две метки указывают на один адрес. Не ошибка, но не хорошо.

Код:
start:
   sbic pinb, bortL       ;
   rjmp a                 ;
   sbic pinb, bortR       ;
   rjmp b                 ;
   rjmp init             ;


Это у тебя основной цикл программы, зачем в каждом цикле выполнять инициализацию порта б? Прыгай на start. Тоже не ошибка, но бессмысленное действие.
Остальное вроде нормально. Только описывай что именно ты хочешь запрограммировать, чтобы другим не надо было догадываться.

P.S:
Код:
.include "c : \ programm files \ atmel \ avr studio \ appnotes \ tinny12.inc" ;
Ты уверен, что по этому адресу есть такой файл? Вообще, если ты студию устанавливал, а не скопировал установленную папку откуда-нибудь, то полный путь прописывать не надо, достаточно имени файла.
Файлы определений надо искать в папке avr studio\AvrAssembler2\Appnotes\


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"
СообщениеДобавлено: 20 авг 2012, 18:23 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2011, 17:38
Сообщения: 589
Откуда: россия, череповец
ок. дома осмыслю. писл код на работе - временм мало-торопился. поэтому нет ояснений.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"
СообщениеДобавлено: 20 авг 2012, 22:58 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2011, 17:38
Сообщения: 589
Откуда: россия, череповец
legion, дружище, ставь задачу. хочу голову поломать))))
а пока подправлю последний листинг...

подправил...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"
СообщениеДобавлено: 22 авг 2012, 00:17 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2011, 17:38
Сообщения: 589
Откуда: россия, череповец
думаю, кодовый замок, вот где мона голову поломать...

Добавлено спустя 1 час 52 минуты 12 секунд:
похоже остался я один на один с асмом... :x

Добавлено спустя 50 минут 4 секунды:
В СТУДИИ МНЕ ПОСТОЯННО ПИШУТ: FATAL ERROR: Cannot open output file C:\Users\=\Documents\5.hex: No such file or directory
ЧТО К ЧЕМУ, ПОДСКАЖИТЕ??


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"
СообщениеДобавлено: 22 авг 2012, 01:03 
Не в сети

Зарегистрирован: 24 апр 2010, 14:47
Сообщения: 736
Откуда: Уфа
прог. языки: avr asm
Выбери другую директорию для своих проектов. Что-нибудь простое и короткое, C:\Projects, например.
А задачи пора самому себе ставить, это верно. =)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: серж. "А ТЫ... ХОЧЕШЬ СТАТЬ АСМАТИКОМ?"
СообщениеДобавлено: 22 авг 2012, 01:50 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2011, 17:38
Сообщения: 589
Откуда: россия, череповец
я понимаю, что студия не любит длинные пути чтения, но у меня при любом раскладе пишет эту же ошибку.... :cry:


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 423 ]  На страницу Пред.  1 ... 24, 25, 26, 27, 28, 29  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO