О. Прикольный сайт. ) Спасибо. Почитаю.
И все же по поводу стандарта тоже интересно. Если С99 позволяет это делать, а другие не позволяют. Но куча примеров в интернете не натолкнула меня на правильное использование (объявление) цикла с параметром...
С99 ни какое не расширение, а самый настоящий стандарт языка С, принятый 21 год назад взамен С89, которому больше трёх десятков лет! Стоит использовать последнюю доступную в компиляиоре версию языка. Последний стандарт на С - С18 принят совсем недавно.
И это я ещё молчу про С++, который вообще огонь!
Добавлено after 8 minutes 45 seconds: СКАЗОЧНИК, всё верно у вас в цикле for. Счётчик цикла живёт только внутри цикла - это хорошо.
[uquote="Oxford",url="/forum/viewtopic.php?p=3901134#p3901134"]Поэтому я сторонник ANSI C.[/uquote]
Наверное, и триграфы используете вместо неправославных { или #?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
[uquote="Oxford",url="/forum/viewtopic.php?p=3901134#p3901134"]C99 ни один компилятор не поддерживает полностью. Даже ваш православный GCC.[/uquote]Это шутка юмора такая? GCC С18 с 8-й версии поддерживает, а уже 10-я на дворе.
Одно дело опубликовать стандарт, другое дело внедрить его поддержку в компиляторы. Повторяю GCC не полностью поддерживает C99. Тот же майкрософт в погоне за C++ забили на C99
А вот код только с ANSI C поддерживается всеми компиляторами. Реализован качественно и полностью на нем до сих пор программируют и это считается хорошим тоном.
Быдлокодить вы можете на чем угодно, это ваше право каким языком программировать.
К тому же учебного материала качественного по ANSI C больше
Просто не стаклкивались с багами приложений когда компилятор херню компилит либо не понимает что от него хотят
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
[uquote="Oxford",url="/forum/viewtopic.php?p=3901344#p3901344"]Поддерживает, но не полностью. Еще бы он С99 не компилировал в 2020[/uquote]
В С++, например, есть "export template" из стандарта 2003 года, но его поддерживает только один компилятор из второго эшелона, что теперь на С++ не писать? Превью msvc уже C11/C17 полностью поддерживают, но в поддержке С99 действительно есть пробелы и т.к. подобная картина наблюдается в других компиляторах, то видимо в значительной степени дело в самом C99.
Последний раз редактировалось Reflector Сб окт 03, 2020 23:44:31, всего редактировалось 1 раз.
Вот чего спрошу - в STM32F303 старт, стоп, наки всяки и другое разное нужное для I2C железом формируются? Неужели свершилось, и не нужно в коде портянки километровые писать про то, что давно уже описано-переписано и в железе реализовано сто лет назад?
ЗЫ: Моё IMHO. Новая реализация I2C от STM32 сложнее того что было в F1. При том что даёт больше автоматизации и, как говорят, меньше глючит. Но код для неё сложнее, кмк. Могу попозже кинуться примером кода.
[uquote="VladislavS",url="/forum/viewtopic.php?p=3901413#p3901413"]Asmodey, а что в RM про это пишут?[/uquote]Скорее не пишут, чем пишут. Скажем, описания битов START и STOP я в RM не нашел. Сначала удивился, затем понял, что их там нет вовсе, а I2C интерфейс у F303 отличается от F0 и F1. Отличается лучшую сторону, имхо.
Ваш код я уже нашел на изиэлектроникс, спасибо. Правда, кой-какие непонятки возникли с обработкой ошибок, но это решаемо. А без контроля ошибок I2C уже заработал у меня и чего-то пишет в слейв устройство.
[uquote="Asmodey",url="/forum/viewtopic.php?p=3901483#p3901483"]Скажем, описания битов START и STOP я в RM не нашел. Сначала удивился, затем понял, что их там нет вовсе,[/uquote]Как это нет?
[uquote="Asmodey",url="/forum/viewtopic.php?p=3901393#p3901393"]Вот чего спрошу - в STM32F303 старт, стоп, наки всяки и другое разное нужное для I2C железом формируются? Неужели свершилось, и не нужно в коде портянки километровые писать про то, что давно уже описано-переписано и в железе реализовано сто лет назад?[/uquote]
У нордиков раз в 10 все легче реализовано при чем DMA уже интегрирован в I2C. там вообще об этом не думаешь.
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Опять появился повод немного взбаламутить стоячее болото любителей куба: в новой версии библиотеки LL для F1xx (v1.8.2) оне ухитрились в очередной раз поломать то, что неведомым образом хоть как-то работало прежде. Чтобы воспроизвести ситуацию, когда элементарнейшая конфигурация вообще не работает, нужно просто заинитить I2C1 для использования с библиотекой LL, чтобы получилось примерно такое:
Раз и заинитились I2C-шные ноги в режим PUSH-PULL (обведено красным). Кури бамбук, три плату спиртом, хоть до заговения. Нифига не заработает.
[uquote="Oxford",url="/forum/viewtopic.php?p=3901727#p3901727"]У нордиков раз в 10 все легче реализовано при чем DMA уже интегрирован в I2C. там вообще об этом не думаешь.[/uquote]
У нордиков своих чудес в достатке. Начать с того, что дма, например, не работает с флешем.
[uquote="Oxford",url="/forum/viewtopic.php?p=3901738#p3901738"]a5021 если в нордиках ничего не понимаете лезть не надо.[/uquote]
У вас наваждение такое случилось, будто я не понимаю или вы и ответить сможете?