Первое знакомство. Первые грабли. Светофор на Attiny13A

Обсуждаем контроллеры компании Atmel.
Alkul
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение Alkul »

[uquote="AndTer",url="/forum/viewtopic.php?p=3468783#p3468783"]Не совсем понятен смысл использования ассемблера? АВР заточены под С.[/uquote]
Интересное утверждение. А чем AVR принципиально отличаются от, скажем, х51 ?
Там гарвардская архитектура и тут гарвардская архитектура, там АЛУ и тут АЛУ, там блок РОН и тут блок РОН, там флеш-память программ и ОЗУ и тут флеш-память программ и ОЗУ. Система команд отличается, и что?
Почему AVR заточены под С, а х51 - нет? А чем AVR и х51 вместе взятые принципиально отличаются от старших моделей PIC?
Вас послушать, так все микроконтроллеры под С заточены.
Я рискну утверждать следующее:
1. Код, написанный хорошим программистом на ассемблере, всегда будет меньше по объему, чем код, написанный на С для решения той же задачи.
2. Код, написанный хорошим программистом на ассемблере, почти всегда будет иметь бОльшее быстродействие, чем код, написанный на С для решения той же задачи

Естественно, в случае с С имею в виду "чистый" С, без ассемблерных вставок, ибо это "читерство" :)
Реклама
Аватара пользователя
АлександрЛ
Друг Кота
Сообщения: 43884
Зарегистрирован: Пн ноя 30, 2009 03:00:01
Откуда: Нерезиновая

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение АлександрЛ »

[uquote="Alkul",url="/forum/viewtopic.php?p=3469444#p3469444"]1. Код, написанный хорошим программистом на ассемблере, всегда будет меньше по объему, чем код, написанный на С для решения той же задачи.
2. Код, написанный хорошим программистом на ассемблере, почти всегда будет иметь бОльшее быстродействие, чем код, написанный на С для решения той же задачи

Естественно, в случае с С имею в виду "чистый" С, без ассемблерных вставок, ибо это "читерство" :)[/uquote]
:facepalm:
Человеку нужна МИГАЛКА ТРЕМЯ СВЕТОДИОДАМИ, которая, даже будучи написана на бейсике с использованием простейшего цикла, в этом МК займёт мизер памяти, а вы пустились рассуждать о "высоких материях"..

зы.. Не учите меня жить, лучше помогите материально.. :beer: :beer: :beer:
Реклама
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение Аlex »

Alkul писал(а):чем код, написанный на С для решения той же задачи
Кем ? Вы не написали кем :)
Отсюда можно утверждать :
Код, написанный на С профессионалом, будет гораздо эффективней кода, написанного на АСМ :)
Аватара пользователя
AndTer
Поставщик валерьянки для Кота
Сообщения: 2406
Зарегистрирован: Ср фев 23, 2011 12:12:31

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение AndTer »

[uquote="Alkul",url="/forum/viewtopic.php?p=3469444#p3469444"]Я рискну утверждать следующее:
1. Код ... всегда будет меньше по объему...
2. Код ... будет иметь бОльшее быстродействие...[/uquote]
1. И куда же девать столько свободной памяти? Отсыпать в коробку, а потом поменять на талоны на молоко?
2. А что, для того чтобы мигать 3 светодиодами без ассемблера не обойтись?
Времена когда нужно было экономить каждый байт и каждый цикл МК давно прошли.
Сейчас проще взять более производительный МК с достаточным объёмом памяти и богатой периферией.
Нет дефицита, да и цены более чем доступные. Вплоть до того, что можно купить многократно более производительный МК с большим объёмом памяти и богатой периферией дешевле чем старый авр или пик.

И надо понимать, что самый ценный ресурс это время. Оно как ресурс невосполнимо и ограничено.
Я у ТС спрашивал, какая у него цель. Ассемблер ради ассемблера или ради светофора.
Если ради ассемблера, то можно смело ковырять до нового 2025 года. А если ради светофора, то взять и написать на С за часик и порадовать ребёнка.

Что касаемо понимания работы мк... вот мы раньше читали книги, изучали простую логику и регистры, это было действительно надо, потому что ассемблер... Но если писать на С, то такая глубина не нужна и общие принципы можно изучить по блочным схемам из даташитов на МК. В общем, каждому своё.
Глупый не задает вопросы. Глупый и так все знает.
Реклама
Эиком - электронные компоненты и радиодетали
Alkul
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение Alkul »

[uquote="АлександрЛ",url="/forum/viewtopic.php?p=3469507#p3469507"]Человеку нужна МИГАЛКА ТРЕМЯ СВЕТОДИОДАМИ[/uquote]
Вы внимательно прочли фразу, которую я процитировал, и на которую я отвечал?
AndTer писал(а):Не совсем понятен смысл использования ассемблера? АВР заточены под С.
Если бы автор написал
Не совсем понятен смысл использования ассемблера в данном проекте
не было бы вопросов.
Я отвечал на очень спорное высказывание, что "AVR заточены под С"
[uquote="АлександрЛ",url="/forum/viewtopic.php?p=3469507#p3469507"]лучше помогите материально[/uquote]
Я по субботам не подаю. И по понедельникам тоже.

Добавлено after 9 minutes 43 seconds:
[uquote="Аlex",url="/forum/viewtopic.php?p=3469536#p3469536"]
Alkul писал(а):чем код, написанный на С для решения той же задачи
Кем ? Вы не написали кем :)[/uquote]
Хоть кем. Код, написанный профессионалом на ассемблере, будет эффективнее, чем код, написанный профессионалом на С. Хотя бы потому, что машинный код во втором случае создается не человеком-профессионалом, а компилятором.
Естественно, что это справедливо и для случая, если код на ассемблере пишет профессионал, а код на С - новичок.
А вот если на ассемблере пишет новичок, тогда конечно, профессионал на С напишет лучше, чем новичок на асме.
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18548
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение ARV »

прошу прощения за оффтоп, но налицо противоречие
AndTer писал(а):И куда же девать столько свободной памяти? Отсыпать в коробку, а потом поменять на талоны на молоко?
AndTer писал(а):Сейчас проще взять более производительный МК с достаточным объёмом памяти
невыносимо достали рассуждения про то, что "сейчас все дешево и сердито"
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
Аватара пользователя
AndTer
Поставщик валерьянки для Кота
Сообщения: 2406
Зарегистрирован: Ср фев 23, 2011 12:12:31

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение AndTer »

Здесь нет противоречия.
В первом случае речь идёт об экономии ресурсов в процессе написания кода, которое выливается в переходе на ассемблер и соответствующих временных затратах. ДА и о практической невозможности решать сложные задачи.
Во втором случае речь идёт о избыточных ресурсах которые не стоят никакого времени, да ещё и за меньшие деньги.
А то что дёшево и сердито... то это факт, а не рассуждения.

Ну что у вас с логикой то?
Один прицепился к спорному утверждению(рассматривать надо в комплексе, ресурсов мк и компиляторов, одно дело z80 с внешней паматью где каждый байт на счету, другое дело 8 ногая тинька с 8кБ флеша, я не представляю какую задачу надо решать на ней чтобы забить 8кБ флеша работая с ассемблером). При этом игнорирует все аргументы против его доводов. Другой никак не может понять разницу между экономией ресурсов и их избыточностью.
Глупый не задает вопросы. Глупый и так все знает.
Alkul
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение Alkul »

[uquote="AndTer",url="/forum/viewtopic.php?p=3469585#p3469585"]1. И куда же девать столько свободной памяти? Отсыпать в коробку, а потом поменять на талоны на молоко?[/uquote]
"Столько памяти" понадобится, когда понадобится реализовать проект посложнее, чем мигание тремя светодиодами.

[uquote="AndTer",url="/forum/viewtopic.php?p=3469585#p3469585"]2. А что, для того чтобы мигать 3 светодиодами без ассемблера не обойтись?[/uquote]
Осваивать язык надо от простого к сложному. Это раз. Осваивать надо, решая полезную задачу, а не абстрактно (это продуктивнее). Это два.

[uquote="AndTer",url="/forum/viewtopic.php?p=3469585#p3469585"]Сейчас проще взять более производительный МК с достаточным объёмом памяти и богатой периферией.[/uquote]
Как все просто. То есть Вы, для задачи, которую можно решить на 8-ми разрядном контроллере средней руки, предлагаете взять сразу 32-х разрядный с высоким быстродействием.
Ну, чтобы голову над эффективными алгоритмами и правильным программированием не ломать. Понятно. Пусть вместо мозгов работают мегагерцы и мегабайты. Но что будет, когда встанет задача, решение которой на 32-х разрядном контроллере потребует привлечения тех самых эффективных алгоритмов и правильного программирования? В предыдущий раз Вы предпочли не ломать над этим голову, просто взяли МК следующего поколения. А в этом случае что делать? Навык оттачивается от простого к сложному, а Вы как раз предпочли его не оттачивать.

[uquote="AndTer",url="/forum/viewtopic.php?p=3469585#p3469585"]И надо понимать, что самый ценный ресурс это время. Оно как ресурс невосполнимо и ограничено.[/uquote]
Время, потраченное на обучение и освоение новых навыков, никогда не бывает потрачено зря.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение BOB51 »

[uquote="Alkul",url="/forum/viewtopic.php?p=3469444#p3469444"]...
Интересное утверждение. А чем AVR принципиально отличаются от, скажем, х51 ?...[/uquote]
У АВР(и у ПИКов) нет возможности работать в режиме микропроцессора - совмещенной внешней памяти программ/данных.
:wink:
Касательно выбора языка...
Зависит от задач и "навороченности" самого кристалла.
Для "примитивов" и непосредственного абсолютного управления ресурсами все равно за ассемблером первенство.
Для сложных задач с математикой и "абстрактными " потоками данных - преимущество ЯВУ.
:beer:
Это ежли нету сил и времени освоить многофайловики под ассемблером - надо отдать должное это ешшо тот садомазохизьм!
:tea:
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение oleg110592 »

[uquote="BOB51",url="/forum/viewtopic.php?p=3469798#p3469798"]У АВР(и у ПИКов) нет возможности работать в режиме микропроцессора - совмещенной внешней памяти программ/данных.[/uquote]
а как же ATmega162 – Up to 64K Bytes Optional External Memory Space
или PIC18F8520 External Memory Addressing (up to 2 Mbytes)
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение pyzhman »

Господа! Вы не забыли, о чём идёт речь?
Docendo discimus
akl
Друг Кота
Сообщения: 4445
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение akl »

[uquote="vasyatky",url="/forum/viewtopic.php?p=3469393#p3469393"]завтра обновлю схему. попробую прогнать макет.[/uquote]
Думаю, все чудеса от некорректного включения кнопок. Можно попробовать тестовую программу
Спойлер

Код: Выделить всё

.include "tn13Adef.inc"

;	Константы
;=======
.equ	Fo=9600000/8

.org	0
	RJMP	START
TB_SVET_TIME:
	.DB	0b00000111,BYTE3(3*Fo/5-1),BYTE2(3*Fo/5-1),BYTE1(3*Fo/5-1)	;все включены	;красный
	.DB	0b00000001,BYTE3(3*Fo/5-1),BYTE2(3*Fo/5-1),BYTE1(3*Fo/5-1)	;красный
	.DB	0b00000011,BYTE3(5*Fo/10/5-1),BYTE2(5*Fo/10/5-1),BYTE1(5*Fo/10/5-1)	;красный+желтый
	.DB	0b00000100,BYTE3(3*Fo/5-1),BYTE2(3*Fo/5-1),BYTE1(3*Fo/5-1)		;зелёный
TB_SVET_TIME_END:

START:
	SER	R19
	OUT	DDRB,R19

	LDI	ZH,HIGH(TB_SVET_TIME*2)
	LDI	ZL,LOW(TB_SVET_TIME*2)
CIKLE:
	LPM	R19,Z+
	LPM	R20,Z+
	LPM	R21,Z+
	LPM	R22,Z+
	OUT	PORTB,R19
	RCALL	GO_DEL
	CPI	ZL,LOW(TB_SVET_TIME_END*2)
	BRLO	CIKLE
	RJMP	START

GO_DEL:
	SUBI	R22,BYTE1(1)
	SBCI	R21,BYTE2(1)
	SBCI	R20,BYTE3(1)
	BRNE	GO_DEL
	RET
.EXIT
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15571
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение BOB51 »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3469828#p3469828"][uquote="BOB51",url="/forum/viewtopic.php?p=3469798#p3469798"]У АВР(и у ПИКов) нет возможности работать в режиме микропроцессора - совмещенной внешней памяти программ/данных.[/uquote]
а как же ATmega162 – Up to 64K Bytes Optional External Memory Space
или PIC18F8520 External Memory Addressing (up to 2 Mbytes)[/uquote]
Это ВНЕШНЯЯ ПАМЯТЬ ДАННЫХ,
НО НЕ СОВМЕЩЕННАЯ ПАМЯТЬ ПРОГРАММ/ДАННЫХ
Выполнять напрямую программы оттуда эти МК НЕ В СОСОТЯНИИ.
А вот ежли работать с машинными кодами через предустановленный в ПЗУ МК интерпретатор то тогда подобие будет (но то ведь не прямое исполнение, а имитация целевого процессора - как частность так имитировали Z80 с помощью АВР).
8)
ПОКА...
Ждемс корректную схемку от топикстартера... на посмотрямс...
:roll:
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение oleg110592 »

ТС-у бы еще железный отладчик - "другой вопрос: как это происходит на самом деле, в камне?"
для BOB51 из документации:
The External Memory Bus (EMB) allows the device to
access external memory devices (such as Flash,
EPROM, SRAM, etc.) as program or data memory. It
supports both 8-bit and 16-bit Data Width modes and
four address widths from 8 to 20 bits.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение Мурик »

ATTiny13 поддерживает отладку по debugWIRE, но отладчик нужно поискать. Готовые на Али стоят больше 100$. :shock: Кроме того, интерфейс debugWIRE имеет ограничения.
СпойлерПрограммные точки останова формируются с помощью входящей в систему команд AVR команды Break. Интегрированная среда разработки обеспечивает сохранение оригинальной команды, заменяемой Break в памяти настольного компьютера, с последующим её восстановлением и продолжением исполнения программы. Таким образом использование программных точек останова тратит ограниченный ресурс данных микроконтроллеров — максимально возможное количество циклов записи стирания программной памяти. Нужно следить, чтобы отладчик не израсходовал его полностью.

Поскольку для отладки используется вход внешнего сброса RESET, становится невозможным проверять схемы внешнего сброса.

В момент останова процессора, чтобы не нарушить работу системы, надо соблюдать осторожность при обращении через отладчик к регистрам ввода-вывода.

В режиме с разрешённой отладкой потребляемая процессором мощность возрастает, поэтому не следует забывать по окончании отладки перевести fuse-переключатель DWEN в исходное состояние.
Не пойму неужели разработчики не могли сделать нормальную отладку? И без фьюзов конечно же не обошлось. В нормальных МК вместо них программная конфигурация. :)
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение oleg110592 »

как вариант у китайцев есть AVR JTAG дешево, можно и самому спаять (прошивка вроде в папке AVR Studio). Но тини13 не поддерживает - придется на поддерживаемой типа mega16 отладить, а потом перенести в тини13.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение Мурик »

Вот и я про это. Дешевых debugWIRE отладчиков (или схем с прошивкой) в сети найти не удалось. Может плохо искал?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18548
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение ARV »

"железный отладчик" для attiny13?! :shock: :shock: :shock:
это может потребоваться только в случае, если разработчик полный неизлечимый даун
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение Мурик »

ARV, это может понадобится в начале изучения МК чтобы лучше понимать как он работает. У ТС как раз такой случай.
Аватара пользователя
AndTer
Поставщик валерьянки для Кота
Сообщения: 2406
Зарегистрирован: Ср фев 23, 2011 12:12:31

Re: Первое знакомство. Первые грабли. Светофор на Attiny13A

Сообщение AndTer »

Чего то далеко занесло от темы)
И всё же, ждём вестей от ТСа и держим пальцы.
Ведь пока папка играется с асмом, ребёнок ждёт светофор...
Глупый не задает вопросы. Глупый и так все знает.
Ответить

Вернуться в «AVR»