-
- А зачем много раз повторять Bill(163 знак., 20.09.2013 09:37)
- Такие вещи не нужны. Абстракцию делать нужно на более высоком уровне. Завтра led может не через порт, а через i2c включаться, например. - fk0(20.09.2013 10:44)
- Это я быстренько настрочил функций для проверки. Поправил. - Mazur(20.09.2013 10:21 - 10:26)
- В рабочей программе количество ошибок четное(С) Vit(479 знак., 20.09.2013 07:43)
- фтопку компилятор, требующий помнить размер переменной при ее использовании (prb/prw). - Vladimir Ljaschko(20.09.2013 06:50)
- В смысле? Какую переменную проверять? - Mazur(20.09.2013 10:23 - 10:38)
- Может я неправильно вас понял. Таблица в памяти программ. Mazur(102 знак., 20.09.2013 11:32)
- Нормальный компилятор знает, где расположена переменная, и программист не должен указывать, откуда ее брать. Vladimir Ljaschko(332 знак., 20.09.2013 11:46)
- У вас какой компилятор? - Mazur(20.09.2013 20:52)
- IAR - Vladimir Ljaschko(20.09.2013 20:55)
- Ха! А нормальный программист должен ещё написать const, и желательно static :-) SciFi(82 знак., 20.09.2013 11:47)
- Здесь все зависит от компилятора. - Bill(20.09.2013 12:07)
- а зачем static ? Я часто таблицы в отдельный файл кладу, удобно. И если во флеше должна лежать , то _FLASH перед ней, а уж в зависимости от проца и компилятора подставляется нужное. Да и самому понятнее. - Andreas(20.09.2013 12:02)
- Отдельный лучше файл или нет - в каждом случае разбираться надо. Но в общем случае засирание глобального пространства имён без необходимости - это зло. А по поводу _FLASH - см. сцылко -> - SciFi(20.09.2013 12:07, ссылка)
- Обычно два подчеркивания идет во всяких стандартных именах, одно не встречал, хотя и не присматривался. - Andreas(20.09.2013 12:14)
- _Bool - SciFi(20.09.2013 12:18)
- Не пользовал, учту.. Но я всегда использую _ВСЕЗАГЛАВНЫЕ - удобно оказалось, когда проект сразу для для двух разных процов делался, да и потом яснее, что где лежит. - Andreas(20.09.2013 12:25)
- Мопед не мой: SciFi(330 знак., 20.09.2013 12:29 - 12:32)
- Бюрократы! - Andreas(20.09.2013 12:38)
- Мопед не мой: SciFi(330 знак., 20.09.2013 12:29 - 12:32)
- Не пользовал, учту.. Но я всегда использую _ВСЕЗАГЛАВНЫЕ - удобно оказалось, когда проект сразу для для двух разных процов делался, да и потом яснее, что где лежит. - Andreas(20.09.2013 12:25)
- _Bool - SciFi(20.09.2013 12:18)
- Обычно два подчеркивания идет во всяких стандартных именах, одно не встречал, хотя и не присматривался. - Andreas(20.09.2013 12:14)
- Без статика MISRA ругаецца ;) - Vladimir Ljaschko(20.09.2013 12:08)
- Отдельный лучше файл или нет - в каждом случае разбираться надо. Но в общем случае засирание глобального пространства имён без необходимости - это зло. А по поводу _FLASH - см. сцылко -> - SciFi(20.09.2013 12:07, ссылка)
- Посыпаю голову пеплом! Кстати, я точно не программист, а "радиоинженер" по диплому :) - Vladimir Ljaschko(20.09.2013 11:57 - 12:01)
- Дык у нас почти никто не работает по специальности :-) - SciFi(20.09.2013 12:25)
- У вас какой компилятор? - Mazur(20.09.2013 20:52)
- Такие вещи компилятор разруливает автоматически: если есть ключевое слово __flash, то данные в памяти программ, иначе - в ОЗУ. SciFi(130 знак., 20.09.2013 11:36)
- финский не умеет - Vit(20.09.2013 11:39)
- Мануал пишет, что умеет: "The__flash qualifier will locate data in the .progmem.data section. Data will be read using the LPM instruction." - SciFi(20.09.2013 11:43)
- раньше он нихрена не умел без pgmspace.h, и думаю, что сейчас тоже не умеет. - Vit(20.09.2013 12:14)
- Какой компилятор? - Mazur(20.09.2013 11:53)
- Сказано же, финский. Он же гну, он же гэцэцэ, он же gcc, он же WinAVR. - SciFi(20.09.2013 11:56)
- Мануал пишет, что умеет: "The__flash qualifier will locate data in the .progmem.data section. Data will be read using the LPM instruction." - SciFi(20.09.2013 11:43)
- это только для AVR - koyodza(20.09.2013 11:38)
- Ну да, я уже не раз писал о кривости авра в этом плане. - SciFi(20.09.2013 11:39)
- Это не кривость, а естественные последствия гарвардской архитектуры. - Vladimir Ljaschko(20.09.2013 11:50)
- Ха! Почему-то гарвардская архитектура не помешала иметь единое адресное пространство в тех же Cortex-M и STM8. Это всё вялые отмазки. SciFi(54 знак., 20.09.2013 11:59)
- Модифицированная гарвардская архитектура. - Bill(20.09.2013 12:10, ссылка)
- А что мы считаем гарвардской архитектурой ? Наличие физических отдельных шин, или универсальность адресации? Я с википедией не согласен! - Vladimir Ljaschko(20.09.2013 12:09)
- Да не важно что. Единое адресное пространство есть гут, поэтому аффтары авра накосячили. Точка. - SciFi(20.09.2013 12:12)
- В keil на x51 и в hitech с pic18 их нет... - fk0(20.09.2013 11:53)
- В свое время почему-то пришел к выводу, что при этом что-то теряется. "Полный контроль"? :) - Vladimir Ljaschko(20.09.2013 11:59)
- Ха! Почему-то гарвардская архитектура не помешала иметь единое адресное пространство в тех же Cortex-M и STM8. Это всё вялые отмазки. SciFi(54 знак., 20.09.2013 11:59)
- Это не кривость, а естественные последствия гарвардской архитектуры. - Vladimir Ljaschko(20.09.2013 11:50)
- Ну да, я уже не раз писал о кривости авра в этом плане. - SciFi(20.09.2013 11:39)
- финский не умеет - Vit(20.09.2013 11:39)
- Нормальный компилятор знает, где расположена переменная, и программист не должен указывать, откуда ее брать. Vladimir Ljaschko(332 знак., 20.09.2013 11:46)
- Почему нужно писать my_word=prw(word) вместо my_word=word? Vladimir Ljaschko(161 знак., 20.09.2013 11:08)
- Может я неправильно вас понял. Таблица в памяти программ. Mazur(102 знак., 20.09.2013 11:32)
- В смысле? Какую переменную проверять? - Mazur(20.09.2013 10:23 - 10:38)
- По оператору if у вас что делается? - Bill(18.09.2013 11:49)
- Внес комментарии в пример. - Mazur(18.09.2013 13:35)
- Да не в комментариях дело. Повторяю вопрос: у вас по оператору if какой оператор выполняется? - Bill(18.09.2013 13:54)
- В каком месте примера? - Mazur(18.09.2013 13:56)
- Неужели непонятно? Bill(322 знак., 18.09.2013 13:58)
- Блин. Следил же за всеми скобками. До break. - Mazur(18.09.2013 14:03)
- Дык эта... А по шагам в отладчике пройти? Там это сразу видно. - SciFi(18.09.2013 14:05)
- Там и без отладчика все видно. Нужно только писать правильно - Bill(18.09.2013 14:08, ссылка)
- Здрассте... Мазуру было не видно, есличо. Отладчик - вполне себе эмпирической источник информации о свойствах языка Си, раз уж с чтением книг напряжёнка. - SciFi(18.09.2013 14:12)
- Я как-то пропустил скобки. Операторов было несколько. Компилятор ругнулся. Я сделал опыт. Убирал скобки, ставил при нескольких операторах. В тех случаях когда операторов было несколько, компилер матерился. Так что излишне на него понадеялся. :) - Mazur(18.09.2013 14:19)
- Вообще-то компилятор практически всегда матерится по делу. Так что надобно читать этот мат и понимать, о чём он. Вот это случайное накидывание скобок - это как те мартышки, которые строчат на печатающих машинках в надежде выдать "Войну и мир". SciFi(181 знак., 18.09.2013 14:22 - 14:38)
- Нужно не на компилятор надеяться, а на свою логику. В крайнем случае картинки можно сначала рисовать. - Bill(18.09.2013 14:22)
- Но я-то без отладчика увидел. Может быть не то увидел, поэтому и вопрос задал. - Bill(18.09.2013 14:14 - 14:18)
- Дык и я увидел: хорошо, что мы до этого его отступам научили. Какой-никакой, а прогресс есть :-) - SciFi(18.09.2013 14:18)
- Нужно было его еще и скобкам научить. Хорошо хоть отступы делал, тогда кое-что понятнее стало. - Bill(18.09.2013 14:20)
- Дык и я увидел: хорошо, что мы до этого его отступам научили. Какой-никакой, а прогресс есть :-) - SciFi(18.09.2013 14:18)
- Я как-то пропустил скобки. Операторов было несколько. Компилятор ругнулся. Я сделал опыт. Убирал скобки, ставил при нескольких операторах. В тех случаях когда операторов было несколько, компилер матерился. Так что излишне на него понадеялся. :) - Mazur(18.09.2013 14:19)
- Здрассте... Мазуру было не видно, есличо. Отладчик - вполне себе эмпирической источник информации о свойствах языка Си, раз уж с чтением книг напряжёнка. - SciFi(18.09.2013 14:12)
- Там и без отладчика все видно. Нужно только писать правильно - Bill(18.09.2013 14:08, ссылка)
- Видно плохо следил. Или нет? - Bill(18.09.2013 14:05)
- Дык эта... А по шагам в отладчике пройти? Там это сразу видно. - SciFi(18.09.2013 14:05)
- Блин. Следил же за всеми скобками. До break. - Mazur(18.09.2013 14:03)
- Неужели непонятно? Bill(322 знак., 18.09.2013 13:58)
- В каком месте примера? - Mazur(18.09.2013 13:56)
- Да не в комментариях дело. Повторяю вопрос: у вас по оператору if какой оператор выполняется? - Bill(18.09.2013 13:54)
- Внес комментарии в пример. - Mazur(18.09.2013 13:35)
- Это все нахрен не нужно.Если только подключено сто разных клавиатур. plainuser(218 знак., 18.09.2013 10:06)
- +1. Более того, обработку клавиатуры так делают только ассемблерщики. На сях всё это делается гораздо симпатичнее. - SciFi(18.09.2013 10:27)
- Пример тогда, пожалуйста. Как это все симпатичнее делается. Раз уж пытаетесь выбить из меня ассемблерное мышление, тогда ткните пальцем, где как надо и симпатично по вашему мнению. - Mazur(18.09.2013 13:39)
- или так. мультикнопочная, нажатие , отжатие, автоповтор - ведет себя как комповая клава. abivan(3194 знак., 18.09.2013 14:04 - 14:08)
- Вот так: SciFi(669 знак., 18.09.2013 13:50)
- Вот более полный пример: SciFi(1166 знак., 18.09.2013 14:00)
- Меня пока это устраивает: Mazur(6858 знак., 19.09.2013 12:21)
- Оформлено уже достаточно симпатично. SciFi(1286 знак., 19.09.2013 12:45 - 12:55)
- Оппа, а как вы сделали обращение к портам по указателю? Если я правильно понял, конечно. - Mazur(19.09.2013 13:25)
- Почему бы и нет? IO-порты находятся в общем адресном пространстве. Можете почитать Apтём(161 знак., 19.09.2013 16:02)
- Я с этими вашими аврами дела не имел, но интернеты подсказывают, что и там можно -> - SciFi(19.09.2013 14:44, ссылка)
- можно. только у IAR и WinAVR выглядит по-разному. - Vit(19.09.2013 16:48)
- В чём разница? Apтём(132 знак., 19.09.2013 17:05)
- Скомпилировать может и получится. У IAR там struct/union @address, а у AVR_GCC смещение 0x20 макросом _SFR_IO8() запихивается Vit(100 знак., 19.09.2013 17:42)
- В чём разница? Apтём(132 знак., 19.09.2013 17:05)
- Можно. Мне приходилось так делать. - Bill(19.09.2013 15:58)
- можно. только у IAR и WinAVR выглядит по-разному. - Vit(19.09.2013 16:48)
- Оппа, а как вы сделали обращение к портам по указателю? Если я правильно понял, конечно. - Mazur(19.09.2013 13:25)
- Оформлено уже достаточно симпатично. SciFi(1286 знак., 19.09.2013 12:45 - 12:55)
- А можно и попроще, в прерывании каждые N мс: Andreas(787 знак., 19.09.2013 11:17 - 11:25)
- кроме кодов еще нужен счетчик с инкрементом когда код current==previous - для антидребезга и организации коротких/длинных нажатий и автоповтора. - zeleny(19.09.2013 00:02)
- Не мешай. Тебе нужен, а мне - нет. Пусть азы хотя бы освоит для начала. - SciFi(19.09.2013 10:57)
- Меня пока это устраивает: Mazur(6858 знак., 19.09.2013 12:21)
- Вот более полный пример: SciFi(1166 знак., 18.09.2013 14:00)
- Пример тогда, пожалуйста. Как это все симпатичнее делается. Раз уж пытаетесь выбить из меня ассемблерное мышление, тогда ткните пальцем, где как надо и симпатично по вашему мнению. - Mazur(18.09.2013 13:39)
- В зависимости от того, что использую, кнопки, матрицу, подсовываю нужную таблицу. - Mazur(18.09.2013 10:14)
- Есть понятие архитектуры ПО... но я это объяснить уже не в силах. - fk0(18.09.2013 10:32)
- Чтоб получить гибрид ужа и ежа? plainuser(314 знак., 18.09.2013 10:31)
- Я каждый раз говорю ему, чтобы выкинул уже свои ассемблерные велосипеды на свалку истории и попробовал научиться программировать на языке высокого уровня. Тщетно. Всякий раз тупо игнорирует. - SciFi(18.09.2013 10:39)
- Объясню одни из своих мотивов. Реализовывать на асме некоторые свои идеи уже очень трудно. Очень много писать и очень трудно отлаживать. Поэтому я попутно с изучением си пробую некоторые свои идеи. - Mazur(18.09.2013 10:47)
- Ещё раз повторяю: ассемблерное мышление - главный враг обучения программированию. Надо забыть про ассемблер (хотя бы попытаться), иначе на си ничего путного не выйдет. "Free your mind" © Morpheus. - SciFi(18.09.2013 10:49)
- KISS (Keep It Simple, Stupid! Делай это проще, дурачок!) - =AlexD=(18.09.2013 13:57)
- Ещё раз повторяю: ассемблерное мышление - главный враг обучения программированию. Надо забыть про ассемблер (хотя бы попытаться), иначе на си ничего путного не выйдет. "Free your mind" © Morpheus. - SciFi(18.09.2013 10:49)
- Объясню одни из своих мотивов. Реализовывать на асме некоторые свои идеи уже очень трудно. Очень много писать и очень трудно отлаживать. Поэтому я попутно с изучением си пробую некоторые свои идеи. - Mazur(18.09.2013 10:47)
- Я каждый раз говорю ему, чтобы выкинул уже свои ассемблерные велосипеды на свалку истории и попробовал научиться программировать на языке высокого уровня. Тщетно. Всякий раз тупо игнорирует. - SciFi(18.09.2013 10:39)
- +1. Более того, обработку клавиатуры так делают только ассемблерщики. На сях всё это делается гораздо симпатичнее. - SciFi(18.09.2013 10:27)
- Для начала разберитесь что должно быть в программной памяти, а что - в ОЗУ. - Bill(18.09.2013 09:45)
- А зачем много раз повторять Bill(163 знак., 20.09.2013 09:37)