Технический форум по робототехнике.
Правила форума
В данном разделе каждый может иметь не более одной темы. Тема должна начинаться с логина (ника) робофорума.
серж » 20 ноя 2011, 01:10
данный блог для тех кто как и я, как уже известно некоторым старожилам, решил юзать мк. а как программировать не знает.
и вот ща, опытные дядьки, на моем примере, будут объяснять на пальцах что и как.
уж звиняйте, но на данном этапе обучения я выбрал ассамблер.
и вот первый урок от дмитрия:
Dmitry__ писал(а):Начали:
Асм - это список чего надо купить, тебе еще хочется порезаться в квейк, а тебя жана послала в магазин.
Берем список, идем в магазин.
Тебе глубоко наплевать что сколько стоит, в списке первым пунктом - картошка, купил, надорвал бумажку в этом месте, пошел дальше.

т.к. мы в исследовательском режиме, программу пишем с середины...
Нам нужен генератор пачек импульсов на 36кгц, 1 кгц.
Выход управления светодиодом обзовем КонтактСветодиода или PinLed
- Код: Выделить всё • Развернуть
Начало: включить PinLed
пауза
выключить PinLed
пауза
переход на начало
получили вечный генератор. Первый урок закончен

Да, не смотри что все по русски в проге, потом это перетранслируется на абсолютно любой микроконтроллер
что б не было недопоняток, закачиваем аврстудию
http://23.dl5sd-narod.yandex.ru/disk/16 ... 4Setup.exeссыль на загрузку студии.
так же литература предоставленная дмитртем(ток она для СИ):
а так же шаблон программы, которую будем подгонять к чему либо(в данном случае мега48, которая есть у МЕНЯ под рукой):
- Код: Выделить всё • Развернуть
;*******************************************************************
;мега пупер генератор
;проц: 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 кгц.
- Вложения
-
прога.txt
- (1.94 КиБ) Скачиваний: 434
-
шаблон программы.txt
- (1.3 КиБ) Скачиваний: 449
Последний раз редактировалось
серж 24 ноя 2011, 00:44, всего редактировалось 9 раз(а).
Dmitry__ » 20 ноя 2011, 01:12
ну, тады проси админов вырезать начало уроков и перенести сюда
серж » 20 ноя 2011, 01:18
уже сделано...
Vovan » 20 ноя 2011, 01:20
а ещё, не могу удержаться, тот топик про "асм верзус си" лучше ваще не читать - мне плохо становится от чтения его

, аж какая то тошнота к горлу подкатывает... хоть там так и написано "никогда..." и т.д.
Dmitry__ » 20 ноя 2011, 01:24
там полный бред дилетантов
Только як-40 все правильно понял

yak-40 писал(а):Vovan писал(а):Постараюсь исправиться, вот тока в моём мозгу выстроится идея - сразу и начну новую жизнь а то что много времени на асм потратил, думаю "нет худа без добра"...
А я всегда считал что челу пишущему на ассемблере - респект и уважуха!

И что на ассемблере можно написать лучше и компактнее.

серж » 20 ноя 2011, 01:32
Vovan , сказал не надо - значит не буду. (ну так... мождь из любопытства

)
2.Dmitry__ , давай дальше...
зы. АСМ ЕСМЬ -АЗ ЕСМЬ(типо)...
Добавлено спустя 4 минуты 1 секунду:ет че, все спать ушли...?

Dmitry__ » 20 ноя 2011, 01:40
я тута, только хватит на первое время , а то токсикоз будет
да и надо все последовательно сделать, начало в другой теме...
А ты думай над той прогой, води пальчиком по командам, как так получился генератор всего 5-ю строчками.
От чего будет зависеть частота такого генератора, как можно получить не только прямоугольные импульсы (та прога) но и любую скважность...
Vovan » 20 ноя 2011, 01:44
я пока тоже тут, но не хочу пока вмешиваться в процесс начатый Дмитрием - т.наз. этика
А пока, если хочется поближе познакомиться с авр-ами, не поленись прочти Мортона до 28стр... Там всё на пальцах и с картинками рук... А потом можно продолжить и здесь...
Потому что мождь и правильно брать быка за рога (т.е. начинать прям с программы), а может всё же узнать где у быка рога растут? на лбу или на хвосте

серж » 20 ноя 2011, 01:46
ну... ток надо еще "как то" схему подключения меги48 нарыть...
и проги освоить...
Dmitry__ » 20 ноя 2011, 01:50
неа, не надо

мы асм учим а не мега48, кста, если начнешь с нее, то есть большая вероятность отбросить копыта в освоении всего и вся...
серж » 20 ноя 2011, 01:56
вован, а ты с прогой avrealshen не сталкивался? она на русском, весит мало, но что куда, не въезжаю пока...
и мортон, че за книга такая и де зять???
2Dmitry_, не понял ща, это значит асмой мегу48 не зашить или ты про то что ща ток программирование, без железа???
а как тоды их потом объеденить то...:
Добавлено спустя 2 минуты 2 секунды:нашел мортона!!! вводный курс. читаю паралельно.
Vovan » 20 ноя 2011, 02:06
2 Dmitry__ небольшой офф,
ну ведь на асм нельзя написать аппаратно-независимые программы, а значит аврасм. Здесь чел. хочет получить конечный резалт мега48 и все что с ней связано, не так ли? Я понимаю что сама структура асма - одинаковая для всех машин, но она и разная для каждой в частности. Если упереться в кросс-ассемблирование - то, конечно всё иначе, а тут простое хобби и юзерство, не так ли? Поэтому ИМХО нужно все же "привязать" уроки к чему-то, а то ученик от сухой теории сбежит на...
Мортона могу сюда поместить... а! нашел уже! Малаца!
с авреалшен сталкивался давно, но не помню зафиг она... реально нужна АВРСтудия и Протеус.
серж » 20 ноя 2011, 02:18
вован,
+1
одной теорией вы меня ток замучаете...
да и не на производство идти, а так, для себя, типа игрушки.
еще вопрос, разные меги по разному шьются? и мона ли стирать с них проги? а то чет меня немног уже запутали...
Vovan » 20 ноя 2011, 02:22
нет, шьются все одинаково и меги и тини
стирать можно, в основном 1000раз перепрошивать (есть модели с большим числом перезаписи).
серж » 20 ноя 2011, 02:27
ищу аврстудию. пора бы уже и баиньки...
Добавлено спустя 2 минуты 18 секунд:
нашел. качаю и спать!
Добавлено спустя 1 минуту 35 секунд:
минут 15-20 я еще здесь.