Микроконтроллеры | Поясните по Си |
|
---|---|---|
Wladimir_TS, почему С++ - ужас? Из языков, с которыми я имел дело, С++ мне больше всех нравится. |
|
|
Программа из полусотни строк (2 цикла 5 условий, 2 отработчика прерываний) откомпилировалась в 34 кБ кода !!!!!!! а должна в TINY2313 влезть - что за ужас такой такой, где надо и что компилятору накрутить. На ассемблере я в меньшее число-б строк уложился....но надо на это ужасном Си делать, таково ТЗ. |
|
|
Swamp_Dok: Swamp_Dok ◊ По дальности на которое у меня уехала крыша при попытке его изучить - объектное программирование видимо придумано наркомананми, токсикоманами и переспективными пациентами лечебниц особого профиля - ибо логика в нём есть но НАСТОЛЬКО ИЗВРАЩЕННАЯ что просто ужастЪ.... Мне понятна логика железа - если я представляю как на уровне железа работает процессор, то и пишу на ассемблере - я понимаю что делает каждая команда на уровне сигналов - наверно так мозги устроены... |
|
|
Каждому своё. |
|
|
Я застал еще программирование с пультов - когда выдавали с пульта адрес и команду двоичным кодом. А с работой процессор как-то заморачивался исследую работу Х1-53 - там управляющий прибором процессор собран на "рассыпухе" (около 80 корпусов мелкой логики + отдельно аппаратный умножитель 16х16 + блок микропрограмного автомата - вся логика работы процессора во множественный 565РТ4 увы более половины с "битыми" ячейками). Думал - думал - вот решил нафиг выкинуть сие чудо и воткнуть что-то даже 8 разрядное при частоте 20 МГц против 6,12 у штатного 8 р порвут 24/32 (данных/программ).... В общем включил оптимизацию О1 (чего это) в настройках и программа ужалась до 650 байт... PORTD ^= 1PD0 - что это значит |
|
|
^= - это XOR в сишной интерпретации. |
|
|
Странный какой-то идентификатор, начинающийся на цифру - 1PD0. |
|
|
Да это константа какая-то наверняка, не может идентификатор на цифру начинаться. |
|
|
Имя макроса (то что после define) тоже вряд ли может начинаться на цифру, но копаться в стандарте С лень. Во всяком случае препроцессор из состава gcc такое не проглотит:
|
|
|
boo2: boo2сегодня, 16:01 Странно - оно само происходит при cutЭндpasteнге Почему-то появляется 1 вначале - просто PD1 - зарезервировано (avr.h по моему) и равно 1 Программу удалось откомпилировать - но старанно - есть условие IF C=D {...} Так вот при прогоне в симуляторе - он не выходит из этого условия, хотя после него идет текст программы. Как сделать, что-бы он при окончании выполнегия содержимого любого {...} продолжил далее а не крутился на месте ? Все это в осноовном цикле программы |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |