Настройка регистров на плате Arduino на базе Samd
Я пытаюсь настроить BOD33 для микроконтроллера Samd51 в файле .ino в первую очередь, даже до строк #include в .ino
// Определяем базовый адрес для t_SUPC
#define T_SUPC_BASE 0x40001800UL
// Определяем смещения для t_BOD33 и t_STATUS
#define T_BOD33_OFFSET 0x10
#define T_STATUS_OFFSET 0x0C
// Устанавливаем регистр t_SUPC
volatile uint32_t *t_SUPC = (volatile uint32_t *)T_SUPC_BASE;
// Устанавливаем регистр t_BOD33
volatile uint32_t *t_BOD33 = (volatile uint32_t *)(T_SUPC_BASE + T_BOD33_OFFSET);
// Устанавливаем регистр t_STATUS
volatile uint32_t *t_STATUS = (volatile uint32_t *)(T_SUPC_BASE + T_STATUS_OFFSET);
// Очистка бита 1 в t_BOD33 и установка его на 1
*t_BOD33 &= ~(1u << 1); // Очистить бит 1
// Проверяем бит 0 в t_STATUS и выполняем цикл, пока он равен 0
while ((*t_STATUS & 0x01) == 0)
{
}
*t_BOD33 &= (0x7D0300u << 1);
*t_BOD33 |= (1u << 1); // Устанавливаем бит 1 в 1
while ((*t_STATUS & 0x01) == 0)
{
}
while ((*t_STATUS & 0x02) != 0)
{
}
// Очистка бита 1 в t_BOD33 и установка его на 1
*t_BOD33 &= ~(1u << 1); // Очистить бит 1
while ((*t_STATUS & 0x01) == 0)
{
}
*t_BOD33 |= (1u << 2);
*t_BOD33 &= ~(1u << 3);
*t_BOD33 |= (1u << 1); // Устанавливаем бит 1 в 1
но у меня возникла проблема с компиляцией, и VScode выдает эту ошибку, и я понятия не имею, почему, поскольку никогда раньше с ней не сталкивался. ошибки:
""
0_2.ino:28:10: error: expected constructor, destructor, or type conversion before '&=' token
28 | *t_BOD33 &= ~(1u << 1); // Clear bit 1
| ^~
0_2.ino:31:1: error: expected unqualified-id before 'while'
31 | while ((*t_STATUS & 0x01) == 0)
| ^~~~~
0_2.ino:35:10: error: expected constructor, destructor, or type conversion before '&=' token
35 | *t_BOD33 &= (0x7D0300u << 1);
| ^~
0_2.ino:37:10: error: expected constructor, destructor, or type conversion before '|=' token
37 | *t_BOD33 |= (1u << 1); // Set bit 1 to 1
| ^~
0_2.ino:38:1: error: expected unqualified-id before 'while'
38 | while ((*t_STATUS & 0x01) == 0)
| ^~~~~
0_2.ino:42:1: error: expected unqualified-id before 'while'
42 | while ((*t_STATUS & 0x02) != 0)
| ^~~~~
0_2.ino:47:10: error: expected constructor, destructor, or type conversion before '&=' token
47 | *t_BOD33 &= ~(1u << 1); // Clear bit 1
| ^~
0_2.ino:48:1: error: expected unqualified-id before 'while'
48 | while ((*t_STATUS & 0x01) == 0)
| ^~~~~
0_2.ino:51:10: error: expected constructor, destructor, or type conversion before '|=' token
51 | *t_BOD33 |= (1u << 2);
| ^~
0_2.ino:52:10: error: expected constructor, destructor, or type conversion before '&=' token
52 | *t_BOD33 &= ~(1u << 3);
| ^~
0_2.ino:53:10: error: expected constructor, destructor, or type conversion before '|=' token
53 | *t_BOD33 |= (1u << 1); // Set bit 1 to 1
| ^~
Заранее спасибо.
@Dan Neb, 👍2
1 ответ
▲ 3
Строка, в которой начинается ошибка, должна вести к функции, например, setup()
. Вы можете скомпилировать код ниже.
// Определяем базовый адрес для t_SUPC
#define T_SUPC_BASE 0x40001800UL
// Определяем смещения для t_BOD33 и t_STATUS
#define T_BOD33_OFFSET 0x10
#define T_STATUS_OFFSET 0x0C
// Устанавливаем регистр t_SUPC
volatile uint32_t *t_SUPC = (volatile uint32_t *)T_SUPC_BASE;
// Устанавливаем регистр t_BOD33
volatile uint32_t *t_BOD33 = (volatile uint32_t *)(T_SUPC_BASE + T_BOD33_OFFSET);
// Устанавливаем регистр t_STATUS
volatile uint32_t *t_STATUS = (volatile uint32_t *)(T_SUPC_BASE + T_STATUS_OFFSET);
void setup()
{
// Очистка бита 1 в t_BOD33 и установка его на 1
*t_BOD33 &= ~(1u << 1); // Очистить бит 1
// Проверяем бит 0 в t_STATUS и выполняем цикл, пока он равен 0
while ((*t_STATUS & 0x01) == 0)
{
}
*t_BOD33 &= (0x7D0300u << 1);
*t_BOD33 |= (1u << 1); // Устанавливаем бит 1 в 1
while ((*t_STATUS & 0x01) == 0)
{
}
while ((*t_STATUS & 0x02) != 0)
{
}
// Очистка бита 1 в t_BOD33 и установка его на 1
*t_BOD33 &= ~(1u << 1); // Очистить бит 1
while ((*t_STATUS & 0x01) == 0)
{
}
*t_BOD33 |= (1u << 2);
*t_BOD33 &= ~(1u << 3);
*t_BOD33 |= (1u << 1); // Устанавливаем бит 1 в 1
}
,
@Fahad
Смотрите также:
- C++ против языка Arduino?
- Как использовать SPI на Arduino?
- Какие накладные расходы и другие соображения существуют при использовании структуры по сравнению с классом?
- Ошибка: expected unqualified-id before 'if'
- Что лучше использовать: #define или const int для констант?
- Функции со строковыми параметрами
- Библиотека DHT.h не импортируется
- ошибка: ожидаемое первичное выражение перед токеном ','