Написал первую прогу под АРМ.
По задумке, при нажатии на кнопку (низкий уровень на PA0), светодиод на PA19 (к катоду) должен загораться, при отпускании кнопки - тухнуть.
Прошиваю МК. Никакой реакции на кнопку.
Видимо я как-то неправильно считываю вход с кнопки...


Код
#include <board.h>
#include <pio/pio.h>
#include <pio/pio_it.h>
#include <pit/pit.h>
#include <aic/aic.h>
#include <tc/tc.h>
#include <utility/led.h>
#include <utility/trace.h>
#include <stdio.h>
//Configure PIO
static void ConfigureButton()
{
AT91C_BASE_PIOA->PIO_PER = 0xFFFFFFFF; //Enable PortA like PIO
AT91C_BASE_PIOA->PIO_ODR = 1 << 19; //PA19 like IN
AT91C_BASE_PIOA->PIO_PPUER = 1 << 19; //Pull-Up PA19
AT91C_BASE_PIOA->PIO_OER = 1 << 0; //PA0 like OUT
}
int main()
{
ConfigureButton();
while(1)
{
if(( AT91C_BASE_PIOA->PIO_PDSR & 0x00040000) == 0)
{
AT91C_BASE_PIOA->PIO_CODR = 0x00000001; //0 on PA0, LED on
}
else
{
AT91C_BASE_PIOA->PIO_SODR = 0x00000001; //1 on PA0, LED off
}
}
}
#include <pio/pio.h>
#include <pio/pio_it.h>
#include <pit/pit.h>
#include <aic/aic.h>
#include <tc/tc.h>
#include <utility/led.h>
#include <utility/trace.h>
#include <stdio.h>
//Configure PIO
static void ConfigureButton()
{
AT91C_BASE_PIOA->PIO_PER = 0xFFFFFFFF; //Enable PortA like PIO
AT91C_BASE_PIOA->PIO_ODR = 1 << 19; //PA19 like IN
AT91C_BASE_PIOA->PIO_PPUER = 1 << 19; //Pull-Up PA19
AT91C_BASE_PIOA->PIO_OER = 1 << 0; //PA0 like OUT
}
int main()
{
ConfigureButton();
while(1)
{
if(( AT91C_BASE_PIOA->PIO_PDSR & 0x00040000) == 0)
{
AT91C_BASE_PIOA->PIO_CODR = 0x00000001; //0 on PA0, LED on
}
else
{
AT91C_BASE_PIOA->PIO_SODR = 0x00000001; //1 on PA0, LED off
}
}
}
http://electronix.ru/forum/style_emoticons/default/help.gif