Переход от асма к си

Обсуждаем контроллеры компании Atmel.
Ответить
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1337
Зарегистрирован: Сб июн 09, 2012 02:14:11
Откуда: ХАРЬКОВ

Сообщение СЦБист »

сам то что умеешь , кроме как писать ?

думай !
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Сообщение Siarzhuk »

СЦБист писал(а):сам то что умеешь , кроме как писать ?
Не множить сущности на ровном месте. Даже STL-евские каракатицы не typedef-лю - ибо они однозначны, в отличие от ...
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

COKPOWEHEU писал(а):в Си размер и наличие знака у большинства стандартных типов данных (char, int) не стандартизовано.
почему-то мне кажется, что int - всегда со знаком... не стандартизирован только его размер в байтах.
СЦБист писал(а):Может кому-то пригодится набор функций для установки , сброса, проверки битов
маловероятно, что это кому-нибудь пригодится из числа тех, кто работает с микроконтроллерами... так как все это без избыточности решается примитивными выражениями, а для особо ленивых - макросами.
СЦБист писал(а):в си их нету
если это про указатели - я пацталом. если про ссылки - то в приведенном вами ранее коде НЕТ ССЫЛОК.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

СЦБист писал(а):Может кому-то пригодится набор функций для установки , сброса, проверки битов .
Ух Ё, надо же было придумать такое извращение когда есть практически стандартный способ на макросах.
#define SET_BIT(byte, bit) do{byte |= (1<<bit);}while(0)
Реклама
Эиком - электронные компоненты и радиодетали
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 378
Зарегистрирован: Сб сен 19, 2009 07:02:19

Сообщение shindax »

СЦБист писал(а): ...в си их нету...
Да я в курсе, что где есть, просто не понял зачем приводить код без применения упоминаемых технологий.
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2042
Зарегистрирован: Чт дек 27, 2012 20:46:09
Откуда: Болгария, г. Лом

Сообщение botchin »

СЦБист писал(а):жаль что вы не знаете что такое ссылки.

хотя откуда вам знать. в си их нету )))))
Изображение

Книга - Брайан Керниган, Деннис Ритчи, Алан Фьюэр. Язык программирования Си. Задачи по языку Си. — Москва: Финансы и статистика, 1985.

Нашел в www только задач: Алан Фьюэр - Задачи по языку Си.
Изображение

А почему в следующих изданиях их нет .....?????
Лом - ето город в Болгарии, а не инструмент юстировки електроники.
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Сообщение Siarzhuk »

botchin писал(а):А почему в следующих изданиях их нет .....?????
Переводное издание, вероятно товарищи Д.Б.Подшивалов и Г.А.Иващенко предпочли такой термин для указателей либо по эстетическим соображениям, либо он уже использовался в среде "разработчиков ПО для ЭВМ". А учитывая годом рождения С++ 1983 и исторический контекст позднего СССР, подозреваю о разнице между ссылками и указателями на русскоязычном просторе стало известно несколько попозже.
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1337
Зарегистрирован: Сб июн 09, 2012 02:14:11
Откуда: ХАРЬКОВ

Сообщение СЦБист »

ARV писал(а):[que]маловероятно, что это кому-нибудь пригодится .

так я ж предлагаю не таким персонажам на подобе вас , а те кто малость плавали в Си.

так что думайте, если не умеете работать с битовыми полями





.botchin там скорее указатели и массивы.

массивам это более присуще.

думай !

подсказка. название массива - это аресс нулевого элемента массива.

с двухмерными чуть по сложнее.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Сообщение Siarzhuk »

СЦБист писал(а):так я ж предлагаю [...] а те кто малость плавали в Си.
А тем кто плавает в С такие вредные советы тем более ни к чему. :-D
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1337
Зарегистрирован: Сб июн 09, 2012 02:14:11
Откуда: ХАРЬКОВ

Сообщение СЦБист »

а от вас вообще никаких примеров нету. одна мазня.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Сообщение Siarzhuk »

СЦБист писал(а):подсказка. название массива - это аресс нулевого элемента массива.
Это не подсказка - это мантра. ;)
СЦБист писал(а):с двухмерными чуть по сложнее.
... ибо если-бы предыдущее не было мантрой - то в голове жила бы стройная картинка, в которой многомерность ни как не влияет на расположение нулевого элемента массива размерности N.
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Сообщение Siarzhuk »

СЦБист писал(а):а от вас вообще никаких примеров нету.
Лукавите -даже в этой теме есть мой конкретный пример возможного использования C++ template в программировании МК. А вот советовать начинающим функции для работы с битами - это диверсия. :-D Уж кому кому, а ассемблерщику не знать о накладных расходах на вызовы _cdecl функций - это край. ;)
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

СЦБист писал(а):так что думайте, если не умеете работать с битовыми полями
я умею работать с битовыми полями - можно я не буду больше думать? ;)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1337
Зарегистрирован: Сб июн 09, 2012 02:14:11
Откуда: ХАРЬКОВ

Сообщение СЦБист »

раз умеете с ними работать , то не надо говорить что мои функции не будут работать.


вопрос для тех кто более менее шарит в си.

есть функция

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

void EEPROM_write(unsigned int uiAddress, unsigned char ucData)
{
/* Wait for completion of previous write */
while(EECR & (1<<EEWE))
;
/* Set up address and data registers */
EEAR = uiAddress;
EEDR = ucData;
/* Write logical one to EEMWE */
EECR |= (1<<EEMWE);
/* Start eeprom write by setting EEWE */
EECR |= (1<<EEWE);
}

она хороша только в случае , если константа байтовая.

кто предложит функцию для константы в 8 байт ?

и желательно что-бы писать и читать по индексу.


1 адресс начала блока надо будет запоминать ведь.
Вложения
Безымянный.JPG
(45.72 КБ) 164 скачивания
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

СЦБист писал(а):не надо говорить что мои функции не будут работать
работать-то они будут, только для микроконтроллеров рекомендовать их - это какое-то изощренное издевательство, есть куда более практичные подходы для этого.
СЦБист писал(а):вопрос для тех кто более менее шарит в си
не надо изобретать велосипед! я вам давал ссылку на цикл моих статей, которые являются слегка вольным переводом официальной документации к WinAVR (с моими дополнениями) - потрудитесь прочесть, и вам откроется многое, что уже есть в составе стандартной библиотеки компилятора! вы же с WinAVR (оно же avr-gcc) работаете? так в чем дело? все уже сделано сообществом разработчиков компилятора: и манипуляции с битами, и работа с EEPROM, и с FLASH, и еще с кучей всего - берите и пользуйтесь! есть, кстати, и функции для чтения/записи 1, 2, 4 и произвольного количества байтов в/из EEPROM - то самое, что вы спрашивали.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

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

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

СЦБист писал(а): так я ж предлагаю не таким персонажам на подобе вас , а те кто малость плавали в Си.
так что думайте, если не умеете работать с битовыми полями
В упор не вижу в вашем говнокоде работу с полями. Ткните носом.
И ещё, попробуйте ка посомтеть во что этот говнокод разворачивается и сравните с тем, как это можно сделать на АСМе. Вы же крутой Ассемблерщик, судя по вашим же словам. НУ а в Си(++), по всей вашей видимости, ещё больше шарите :)))
СЦБист писал(а): если константа байтовая
Где в коде константа ?
СЦБист писал(а): для константы в 8 байт
Что за константа такая в 8 байт, подробнее можно ?


ЗЫ: Люди. Вас, похоже, троллят по полной... Тут все - тупые, кроме одного единственного человека :)))
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

СЦБист писал(а): кто предложит функцию для константы в 8 байт ?
То есть в документацию по avr-libc ты так и не заглянул? Искомая функция называется eeprom_write_block.
раз умеете с ними работать , то не надо говорить что мои функции не будут работать.
Ты работать не умеешь. Поскольку не можешь выбрать лучший вариант по соотношению эффективность / наглядность. Твой способ проигрывает макросу по обоим параметрам - менее эффективно, менее наглядно и труднее в использовании.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 353
Зарегистрирован: Вс янв 19, 2014 22:41:55

Сообщение Siarzhuk »

Аlex писал(а):Тут все - тупые, кроме одного единственного человека
Риторический Клуб "У СЦБ-иста." :) Ждём Катарсиса - если в первом акте на сцену вышел Тролль - в третьем он вряд-ли откажет себе в удовольствии сорвать джекпот из бурных аплодисментов. Но пока звон граблей отбивает всё ту-же постылую мелодию - char не компилится, битовые операции зашифрованы, в квадратную дырку еепрома вставить многобайтный кирпич проблематично, кнопки дребезжат ....
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1337
Зарегистрирован: Сб июн 09, 2012 02:14:11
Откуда: ХАРЬКОВ

Сообщение СЦБист »

ARV писал(а):[q]не надо изобретать велосипед!
я рискну, раз тут помои нет .


сам не придумаешь - никто не придумает.
COKPOWEHEU писал(а):[q
То есть в документацию по avr-libc ты так и не заглянул? Искомая функция называется eeprom_write_block.
.

и где это чудо лежит ? не надо выдумывать
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

СЦБист писал(а):я рискну
риск - удел героев и дураков. обычные люди почем зря не рискуют.
СЦБист писал(а):сам не придумаешь - никто не придумает
по поводу "стандартных библиотек" я бы так не говорил :write:
СЦБист писал(а):и где это чудо лежит ?
я вам минимум дважды показывал ссылку на место, где описано все... читали? :facepalm:
СЦБист писал(а):не надо выдумывать
так главный выдумщик тут вы :dont_know:
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Ответить

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