roboforum.ru

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


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

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

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

Сообщение Dmitry__ » 21 ноя 2011, 01:30

ага, щаз, свалил я, я спать ложусь в 6 утра :)
Про железяки я начал задавать вопросы, чтоб серж выстро начал моргать светодиодом, после этого у него произойдет множественный оргазм, и дальше не мы ему будем выносить моск, а он нам :)

Добавлено спустя 54 секунды:
я успел наклеить на стены 2 пробковые плитки :)
ремонт у меня :o
Аватара пользователя
Dmitry__
 
Сообщения: 7977
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение серж » 21 ноя 2011, 02:17

Vovan, давай завтра уже, рубит меня, да и клацанье клавиш жен спать мешает.
а часов с 9-10 я здесь на целый день.
все я оффлайн.
2Dmitry__, а у меня баба орет ща. типа достал клацать! иди спать... :cry:
вот я пошел...

Добавлено спустя 34 минуты 34 секунды:
нашел вых из положения - телефон. Но не надолго. Дмитрий, какие соображения. Я прилег спать, а в голове эта прога сидит. Как червь.

Добавлено спустя 5 минут 23 секунды:
хех... Уже и нет ни кого... :shock:
видать без тс весь блог спит.

Добавлено спустя 2 минуты 38 секунд:
хех... Ужо и нет ни кого... :shock:
видать без тс весь блог спит.
Аватара пользователя
серж
 
Сообщения: 589
Зарегистрирован: 27 янв 2011, 17:38
Откуда: россия, череповец

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

Сообщение dccharacter » 21 ноя 2011, 02:27

спать иди
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

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

Сообщение Dmitry__ » 21 ноя 2011, 02:40

пища для завтра:
т.к серж слегка сменил мне тактику своим atmega48, ему же хуже, готовим очередного чайника, кричащего на всех углах: "авр - форева, все другое - ацтой!" :)
Переходим к конкретной железке.
Надо подготовить сержу обертку для его проца, всякие там инициализации стека, портов и.т.д.
Назовем это рыбой.
Знать тебе, пока, что там и зачем не надо, по ходу пьесы сам будешь спрашивать: "а это че?, а это шо?"
сосредоточься на своем генераторе.
Прогу закрепи в первом посте, шоб не использовать систему управления версиями :ROFL:

Так как программисты народ ленивый (и я в том числе) я взял кусок от какого-то своего проекта и добавил генератор сержа. Гы, круто звучит :)
Корректируем под его железку и вперед.

Код: Выделить всёРазвернуть
;*******************************************************************
;мега пупер генератор
;проц: atmega48-20
;чтоб меньше паять использую внутр. генератор (а он там есть? а хз)
;*******************************************************************
.include "2313def.inc"      ;забей :)
.def   temp      =r21   ;

   .cseg
   .org $0000
   jmp   start      ;переход на основную программу после сброса
   .org   INT0addr   ;внешнее прерывание INT0
   reti         ;ну рыба это


start:   cli             ;запретить прерывания
   ldi   temp,low(RAMEND)   ;инициализация стека
   out   SPL,temp      ;

;настройка портов, выключить все устройства
   ldi   temp,1<<B_PDI_CODEC | 1<<B_ENB_DTMF  | 1<<B_CS_Flash         ;выходы
   out   DDRB,temp
   ldi   temp,1<<B_CS_Flash                     ;выходы в "1"
   out   PORTB,temp
   ldi   temp,1<<D_BCLK_CODEC | 1<<D_FS_CODEC | 1<<D_DR_CODEC | 1<<D_OUT_LAN   ;выходы
   out   DDRD,temp
   ldi   temp,0<<D_IN_LAN                     ;вход без резистора "0"
   out   PORTD,temp

main:                ;не, я конечно тупой, но не настолько чтоб метки обзывать "начало"
   включить   PinLed      ;включить светодиод на время одного полупериода 36 кгц.
   call      Pause36kHz   ;
   выключить   pinled         ;выключить светодиод на время одного полупериода 36 кгц.
   call      Pause36kHz      ;
   goto      main          ;переход на начало, программа зациклена на формировании
                   ;прямоугольных импульсое с частотой 36 кгц.

Аватара пользователя
Dmitry__
 
Сообщения: 7977
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение legion » 21 ноя 2011, 07:53

*Ворчит* Много букв и сразу.
Взять инициализацию порта (и все!), разобрать по строчке и на этом примере пройти работу с портами и типовые подключения светодиодов. Убрать на первое время операторы вида <<, заменить на присвоение в двоичной форме для наглядности (мне они мешали вкурить). Следующий этап - изучаем CP, стек и подпрограммы на безусловных переходах на примере разбора подпрограммы Pause36kHz. Затем изучение условных переходов и типовых реализаций циклов на их основе на примере разбора все той же подпрограммы Pause36kHz. Потом можно обернуть это все в нужный для запуска код, а там совсем немного остается, если не брать прерывания, и прошить железку, которую к тому времени как раз соберет Серж.

В аврстудии есть команда goto? На работе не могу посмотреть. И да, откуда такая неприязнь к 48 меге? Что с ней не так? А то я тоже на ней тренируюсь. По дефолту 48 настроена на внутренний 1мгц, если что.
А уж если железка готова и есть желание прямо сейчас ее прошить, то надо дать готовую рабочую прогу вообще без разбора кода, не важно с каким функционалом, главное чтобы наглядно работу демонстрировала. Могу свою дать под 48, с которой работу программатора проверял. Она два светодиода туда-сюда переключает по нажатию кнопки.
legion
 
Сообщения: 736
Зарегистрирован: 24 апр 2010, 14:47
Откуда: Уфа
прог. языки: avr asm

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

Сообщение серж » 21 ноя 2011, 11:31

"готовим чайника, кричащего на всех углах: "авр - форева, все другое - ацтой!" :)
Переходим к конкретной железке."


specially for Dmitry__, мега48, это то что на даный момент есть под рукой!!! PICи, с ними я бы тож не прочь "по замарачиваться", но под рукой их нет. на данном этапе нуно чтоб в моей бестолковке хоть какие то понятия асма были, хотя бы на примере генератора 36кгц (теперь вижу, да, программно кстановить частоту намного проще, чем железо перепаивать).


2legion,
*Ворчит* Много букв и сразу. ...разобрать по строчке

+1
И да, откуда такая неприязнь к 48 меге? Что с ней не так?

+2
Аватара пользователя
серж
 
Сообщения: 589
Зарегистрирован: 27 янв 2011, 17:38
Откуда: россия, череповец

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

Сообщение Vovan » 21 ноя 2011, 12:03

*забежал на минутку*
готовим очередного чайника
возможно программирование для кого-то идол, а для кого-то просто инструмент (как, например, паяльник без которого ну просто не обойтись в некот. моменты деятельности). Не вижу криминала (но в то же время ничего хорошего) в таком неадекватном случае обучить чела на форуме (не как положено по учебникам и часам занятий, потому что как ни крути, пока, это самое действенное обучение, потому что чел. вынужден напрягаться читая учебник и нет ничего кроме учебника! и ничего не выйдет пока не "въедешь" в суть с помощью учебника) мало-мальски программить МК. Поэтому ИМХО прогнозировать "кто получится из сержа" - рано, т.к. случай необычный...
С кнопкой ИМХО не стОит - слишком просто...
Задача: ген. пачек 36кГц по 14имп. в пачке - ее и нужно решать.
Построчно: +1.
Убрать на первое время операторы вида <<
+1
goto - ф топку
ЗЫ: программа изучения которую описал legion - слово в слово, буква в букву и именно в такой последовательности (хоть я уже в n-ный раз повторяю) описано у Дж.Мортона. Что касается экономии времени и сил, однозначно - здесь болтая об этом и не об этом мы потратим больше времени и сил (а резалт не гарантирован при этом!) нежели потратить 2-3 часа и прочитать введение в мир МК. Кстати, у Мортона и ПИКи затронуты...
Если же серж прочитав неск. страниц книги начнет задавать вопросы - это будут совсем другого характера вопросы, например почему везде пишут так, а не эдак?... "Без труда не вынуть рыбку из пруда" (с)
_________
Sincerely,
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

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

Сообщение серж » 21 ноя 2011, 12:51

Dmitry__, если ты хочешь привязать это с PICу, то пусть будет так! - протеусу все равно с чем я буду работать, с авр или PIC. но в железе, как я писал в другой ветке, PIC есть но он одноразовый и видать уже прошитый.
2Vovan, ...а без пруда не вынешь рыбку и с трудом... :ROFL:

Добавлено спустя 55 секунд:
читаю я уже мортона...! :x

Добавлено спустя 34 минуты 10 секунд:
Dmitry__ писал(а):
Код: Выделить всёРазвернуть
;*******************************************************************
;мега пупер генератор
;проц: atmega48-20
;чтоб меньше паять использую внутр. генератор (а он там есть? а хз)
;*******************************************************************
.include "2313def.inc"      ;забей :)
.def   temp      =r21   ;

   .cseg
   .org $0000
   jmp   start      ;переход на основную программу после сброса
   .org   INT0addr   ;внешнее прерывание INT0
   reti         ;ну рыба это


start:   cli             ;запретить прерывания
   ldi   temp,low(RAMEND)   ;инициализация стека
   out   SPL,temp      ;

;настройка портов, выключить все устройства
   ldi   temp,1<<B_PDI_CODEC | 1<<B_ENB_DTMF  | 1<<B_CS_Flash         ;выходы
   out   DDRB,temp
   ldi   temp,1<<B_CS_Flash                     ;выходы в "1"
   out   PORTB,temp
   ldi   temp,1<<D_BCLK_CODEC | 1<<D_FS_CODEC | 1<<D_DR_CODEC | 1<<D_OUT_LAN   ;выходы
   out   DDRD,temp
   ldi   temp,0<<D_IN_LAN                     ;вход без резистора "0"
   out   PORTD,temp

main:                ;не, я конечно тупой, но не настолько чтоб метки обзывать "начало"
   включить   PinLed      ;включить светодиод на время одного полупериода 36 кгц.
   call      Pause36kHz   ;
   выключить   pinled         ;выключить светодиод на время одного полупериода 36 кгц.
   call      Pause36kHz      ;
   goto      main          ;переход на начало, программа зациклена на формировании
                   ;прямоугольных импульсое с частотой 36 кгц.


include, что это? - ХЗ. :shock:
def temp - аналогично. :shock:
cseg - тож самое. :shock:
org - опять. :shock:
jmp start - уже знаю - переход на старт.
org INT0addr - ХЗ. :shock:
reti - ХЗ. :shock:
start: cli - начать что? - ХЗ.
ldi temp,low(RAMEND) - ваще матюги какие то! :shock: :shock: :shock:
out SPL,temp - выход чего?
и т.д... и т. п. :o
legion прав, нуно по строчке разобрать, ху из ху., вот из вот... :wink: :oops:

Добавлено спустя 6 минут 43 секунды:
Vovan, дочитал до 15 стр., вот тут и завис... (алгебра была на троечку с натягом). ну ет пока не вдумывался...
Аватара пользователя
серж
 
Сообщения: 589
Зарегистрирован: 27 янв 2011, 17:38
Откуда: россия, череповец

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

Сообщение Vovan » 21 ноя 2011, 13:02

Как я и говорил без привязки к конкретной машине не обойтись...
Выучил я правила дорожного движения, но авто видел только на картинке и внутри ни разу не сидел... Поеду?
Выучил внутреннее устройство авто. Поеду?
Выучил внутреннее устройство узлов авто и их физ. свойства, кинематику, энергетику и т.д... Поеду?
Наконец сел внутрь авто и увидел то что изучал и даже стал трогать и дергать ручки и штучки всякие... Поеду?
Напоследок взял инструкцию по езде на авто (даташит) прочел, построчно применяя то что написано в даташите на практике... Поеду?
Разве я не прав? а? :wink:
Что мешает поменять порядок?
Изучил инструкцию к авто узнал для чего всякие ручки-штучки, убедился что без знаний для чего эти эти ручки штучки - дергать их нельзя, если дергать надо знать динамику и свойства всех узлов которые связаны с ентими ручками, научился, но правил не знаю - изучил правила ДД - вперед! :)
_________
Sincerely,
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

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

Сообщение Radist » 21 ноя 2011, 13:07

include, что это? - ХЗ. :shock:

Таким словом подключается внешний файл, в котором может быть что угодно. Удобно в отдельный файл выделить отлаженные подпрограммы, ту же паузу.
def temp - аналогично. :shock:

это директива (указание) программе назвать регистр R21 словом temp (временный) и в тексте программы вместо R21 писать temp. Удобно вот для чего - вдруг вам надо будет сменить регистр. Так вы его поменяете только тут - и он автоматом изменится везде. А иначе придется менять ручками, а ну как где забудете поменять - работать не будет.
cseg - тож самое. :shock:

Это указание разместить код в кодовом сегменте (еще есть сегменты данных (ОЗУ) и ПЗУ)
org - опять. :shock:

Это опять директива асемблера, говорит с какого адреса должен начаться код в кодовом сегменте
org INT0addr - ХЗ. :shock:

Это указание на адрес вектора прерываний INT0
reti - ХЗ. :shock:

это мнемоника означает "выход из подпрограммы обработки прерывания"
start: cli - начать что? - ХЗ.

эта мнемоника сбрасывает флаг прерываний
ldi temp,low(RAMEND) - ваще матюги какие то! :shock: :shock: :shock:
out SPL,temp - выход чего?
и т.д... и т. п. :o

Это инициализация стека.

Я абсолютно точно и кратко ответил на ваши вопросы, но уверен, что от этого их стало только больше, потому что для ответа мне пришлось использовать кучу незнакомых слов. Я мог бы расписать и их, но зачем делать то, что уже сделано и гораздо лучше. Я снова говорю про курс Ди Халта на изиэлектроникс. Тот способ обучения, который предложен в этом блоге, мне не нравится. Он не структурирован, обучение с "середины" считаю скорее вредным, чем полезным, поэтому и не участвовал в дискуссии.
Аватара пользователя
Radist
 
Сообщения: 2238
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

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

Сообщение Vovan » 21 ноя 2011, 13:11

с 15 по 19стр всю енту лабуду заменяет программный калькулятор Винды в режиме "инженерный" :) На нем всегда можно перевести число из одной системы в другую, а рАвно и вычисления производить. У Мортона просто рассказано как это делать "столбиком"...
_________
Sincerely,
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

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

Сообщение серж » 21 ноя 2011, 13:14

Vovan, только для тебя(проверка по мортону стр 15)
там пример как преобразовать в двоичный код число 83 все подр. расписано.
вот, надо меня проверить, правильно ли я понял.
число взял от балды: 59
59/2=29 ост 1
29/2=14 ост 1
14/2=7 ост 0
7/2=3 ост 1
3/2=1 ост 1
1/2= ост 1

то еесть двоичный код числа 59 выглядит так: 111011
верно???

Добавлено спустя 1 минуту 28 секунд:
проверил инж. кальк. - ВЕРНО!!!
Аватара пользователя
серж
 
Сообщения: 589
Зарегистрирован: 27 янв 2011, 17:38
Откуда: россия, череповец

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

Сообщение Vovan » 21 ноя 2011, 13:30

Верно! :good:

Добавлено спустя 2 минуты 28 секунд:
часа 2 меня не будет, а т.к. процесс пошел быстро то до стр. 36 и Всё! :D
Потом вопросы, а продолжение только после усваиваивания этого...

Добавлено спустя 13 минут 15 секунд:
Radist писал(а):Я снова говорю про курс Ди Халта на изиэлектроникс. Тот способ обучения, который предложен в этом блоге, мне не нравится. Он не структурирован, обучение с "середины" считаю скорее вредным, чем полезным
+1!
_________
Sincerely,
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

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

Сообщение серж » 21 ноя 2011, 14:08

пока ни кто не видит напишу такую ересь:
Код: Выделить всёРазвернуть
        установить         pinled   ; подключение сд
main:   включить           pinled     ; включить сд с частотой 36кгц
        call               pause 36000<>0=djnz
        выключить          pinled   ; выключить сд с частотой 36кгц
        call               pause 36000<>0=djnz
      ; включить           pinled     ; включить сд с частотой 36кгц 
        call               pause 36000<>0=djnz ;                 возможно не понадобится
        выключить          pinled   ; выключить сд на 0,1 сек
        call               pause 10<>0=djnz
        branch             main  ; переход в начало и по кругу

строки 6 и 7 наверно лишние.
Последний раз редактировалось серж 21 ноя 2011, 14:39, всего редактировалось 1 раз.
Аватара пользователя
серж
 
Сообщения: 589
Зарегистрирован: 27 янв 2011, 17:38
Откуда: россия, череповец

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

Сообщение Radist » 21 ноя 2011, 14:23

выключить сд с частотой 36кгц - на мой взгляд фраза лишена смысла, как и включить сд с частотой 36кгц. Какой смысл этих выражений?

Смысл есть в словах включить и выключить сд. Можете привести пример действий с такой высокой "частотой"? Я сажу картошку не часто - раз в году. Ой, это период. Не могу придумать с частотой.

ЗЫ. Чтобы писать на чужом языке - надо выучить чужие слова. Предлагаю поучить мнемоники и систему команд в принципе, тогда можно будет писать программы и ходить по шагам в симуляторе и реально видеть что происходит. Палец по строкам хорош не всегда. Сейчас у вас описание алгоритма. Алгоритм придумать легко, там и палец не нужен. Но для МК надо его описать понятным МК языком. Вот его я и предлагаю поучить.
Аватара пользователя
Radist
 
Сообщения: 2238
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Пред.След.

Вернуться в Блоги

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

Сейчас этот форум просматривают: Google [Bot] и гости: 6

Mail.ru counter