day & night

 
Истории про правильное программирование, Программирование
Дата публикации:
#1
HugoBo-SS



тут-та-ту
[SoftoRooMTeaM] Group Icon

Группа: Модераторы
Сообщений: 10.906
Регистрация: 3.04.2008
Из: Russia SPb
Пользователь №: 827.869


Респектов: 4350
-----XXXXX




История одного байта


Мне не хватало байта. Всего одного. Да, да. Того самого, что из восьми бит состоит. Что? Hет, я не псих, хотя одному богу известно, сколь тонкой была граница отделявшая меня от этого состояния. Hо все по порядку.
» Нажмите, для открытия спойлера | Press to open the spoiler «
Источник: Архив WASM_RU

Добавлено:

Где предел минимального Hello World на AVR?


Твой софтовый форум


Предупреждение: В данной статье повсеместно используются грязные хаки. Её можно воспринимать только как пособие «как не надо делать»!

Как только я увидел статью «Маленький Hello World для маленького микроконтроллера — в 24 байта», то мой внутренний ассемблерщик наполнился негодованием: «Разве можно так разбрасываться драгоценными байтами?!». И хотя я давно перешёл на C, это не мешает в критических местах проверять быдлокод компилятора и, если всё плохо, то иногда можно слегка изменить C-код и получить заметный выигрыш в скорости и/или занимаемом месте. Либо просто переписать этот кусок на ассемблере.

Итак, условия нашей задачи:

AVR микроконтроллер, у меня больше всего в закромах оказалось ATMega48, пусть будет он;
Тактирование от внутреннего источника. Дело в том, что внешне можно тактировать AVR со сколь угодно малой частотой, и это сразу переводит нашу задачу в разряд неспортивных;
Мигаем светодиодом с различимой глазом частотой;
Размер программы должен быть минимальным;
Вся недюженная мощь микроконтроллера бросается на выполнение задачи.


Для индикации подключим светодиод с резистором между шиной питания VCC и выводом B7 нашей маленькой меги.

Писать будем в AVR Studio.
» Нажмите, для открытия спойлера | Press to open the spoiler «
Источник: habrahabr
User is offline
Go topGo end

Topic Options
Сейчас: 19.04.2024 - 11:03
Мобильная версия | Lite версия