Микроконтроллеры | AVR начинающим - вопросы и ответы |
|
---|---|---|
Если Вы имеете в виду битовые переменные наподобие PORTB.1, то это - извращение CVAVR, к стандарту С никакого отношения не имеющее. Не думаю, что их можно передать в функцию как параметры, потому что минимальный размер параметра - 1 байт, а в нем аж 8 штук битов. С каким именно битом из восьми должна работать функция? Как она об этом узнает? Ответ - да никак! Если нужно работать с тем или иным битом, можно попробовать два варианта: |
|
|
Zandy: CVAVR работает с битовыми переменными. |
|
|
Спасибо за ответы. Сам тоже поизучал документацию. Работать-то он работает: "The global bit variables located in the GPIOR register(s) and R2 to R14 memory space. bit <identifier>;" Да вот только: "The bit data type is supported only for global variables." |
|
|
Alexey: Zandy: CVAVR работает с битовыми переменными. |
|
|
Задумался ещё вот над чем, в cvavr инкременирование работает если записать так: |
|
|
Digital: Неужели и правда cvavr под бит байт выделяет!? Digital: А вообще как правильно |
|
|
chav1961: В Линухе С++ под bool-переменную вообще 4 байта выделяет! Увидел - офигел... Что-то не очень вериться. Может среда не правильная ? |
|
|
Zandy: Так почему я не могу передавать биты в функцию, как параметры? Пишет ошибку при компиляции Передавать можно...только осторожно Надо задекларировать структуру, а в ней объявить битовые переменные произвольной ширины, можно от 1 до 32 бит. В принципе, структуру можно передавать как обычный аргумент в подпрограмму, но для экономии памяти МК (озу) лучше передавать указатель на структуру. Ниже приведен фрагмент кода, в котором используется структура с однобитовыми переменными.
Ну а поскольку байт это минимальная информединица, обрабатываемая в 8-битном МК, то все структуры с битовыми полями используют один-два-три-четыре байта в соответствии с описанием данной структуры, так что хоть для одного битового поля, хоть для 8-ми, всё равно будет использован один байт хранения, а в некоторых случаях - даже два, например, когда переменная хранится во флеши. |
|
|
Удалов: Что-то не очень вериться. |
|
|
Еще раз спасибо всем. Прога уже давно написана и работает. Воспользовался стандартным приемом наложения масок. |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2025 |