Компилирую проект, запускаю через RDI и виглер в RAM. Проект примитивный, вот код функции Main:
Код
for (;;)
{
unsigned int waiting_time;
AT91C_BASE_PIOB->PIO_SODR = 1 << 22;
for(waiting_time = 0; waiting_time < 2000; waiting_time++);
AT91C_BASE_PIOB->PIO_CODR = 1 << 22;
for(waiting_time = 0; waiting_time < 2000; waiting_time++);
}
{
unsigned int waiting_time;
AT91C_BASE_PIOB->PIO_SODR = 1 << 22;
for(waiting_time = 0; waiting_time < 2000; waiting_time++);
AT91C_BASE_PIOB->PIO_CODR = 1 << 22;
for(waiting_time = 0; waiting_time < 2000; waiting_time++);
}
В результате вижу первую осцилограму.
Нажимаю в IAR кнопку остановить отладку, прямоугольные импульсы пропадают, а на прямой линии появляется синусоидальная генерация. Нажимаю кнопку начать отладку - и вижу вторую картинку, т.е. отчетливо видна генерация на полочках импульса. Генерация проподает только при хардварном ресете или передергивании питания. Думал, может быть у меня линии IO не объявлены выходами. Припаял резистор 2кОм с линии на землю, картинка не изменилась (это картинки с резистора).
Вопрос, что это такое?
Плата от олимекса, sam7X256.