Здравствуйте, начал разбираться с микроконтроллерами, в частности с
AT91SAM9260. Вот решил для начала подрыгать ножками. Работаю в
IAR Embedded Workbench for ARM v.5.50.1 Full. Написал код для мигания светодиода, ножка постоянно в высоком состоянии. Может я чего-то не так делаю, может в IAR необходимы какие-то настройки?
Конфугурирую с помощью
J-Link for ARM от IAR Systems. Я в IAR делаю
Download and Debug, но ничего не происходит, может я как-то не так прошиваю?
Привожу исходный код. Заранее спасибо.
Код:
|
#include "AT91SAM9260.h"
void wait(int delay)
{
for (int i = 0; i ‹ delay; i++)
{;}
}
/* Главная функция программы */
int main(void)
{
AT91C_BASE_WDTC-›WDTC_WDMR = AT91C_WDTC_WDDIS; // Отключение сторожевого таймара
//AT91C_BASE_RSTC-›RSTC_RMR = AT91C_RSTC_URSTEN | (AT91C_RSTC_KEY & (0xA5UL ‹‹ 24));
enum { WORKMASK = AT91C_PIO_PB0 }; // Битовая маска, определяет каким выводом управлять
AT91C_BASE_PMC-›PMC_PCER = (1UL ‹‹ AT91C_ID_PIOB); // Разрешение тактирования PIO A
AT91C_BASE_PIOB-›PIO_PER = WORKMASK; // Установка управления PIO выводом (отключение управления выводом переферийным устройством).
AT91C_BASE_PIOB-›PIO_PPUER = WORKMASK; // Разрешение подтягивающих резисторов
AT91C_BASE_PIOB-›PIO_OER = WORKMASK; // Установка вывада в качестве выходад
AT91C_BASE_PIOB-›PIO_CODR = WORKMASK;
while(1)
{
AT91C_BASE_PIOB-›PIO_SODR = WORKMASK; // Установка вывода в единицу
wait(0x1000); // Задержка
AT91C_BASE_PIOB-›PIO_CODR = WORKMASK; // Сброс вывода в ноль
wait(0x1000); // Задержка
}
} |
P.S. Сильно не пинайте, я только начал разбираться, а подсказать не кому.