avr32 в С програмир. (микроконтролер аp7000)

Модератор: Модераторы разделов

vad1
Сообщения: 2

avr32 в С програмир.

Сообщение vad1 »

привет,

нужна програма в С чтобы включить и выключить 2 LED на платине ngw100 от atmel(Port PA Pin 19 и Port PB Pin 19) через клавиатурую. с этой програмкой диод А мaргает:

#include <avr32/io.h>
void simpleDelay (void) {
volatile unsigned int i;
for (i = 0; i != 1000000; i++);
}
int main (void) {
// PORTA 19
AVR32_PIOA.per = 1 << 19;
AVR32_PIOA.oer = 1 << 19;
while (1) {
AVR32_PIOA.codr = 1 << 19;
simpleDelay();
AVR32_PIOA.sodr = 1 << 19;
simpleDelay();
}
}

как правельно управлять диод через клавиатуру (например клавиша ENTER).

зарание спасибо
Спасибо сказали:
Аватара пользователя
RasenHerz
Сообщения: 1341
ОС: Arch Linux amd64

Re: avr32 в С програмир.

Сообщение RasenHerz »

vad1 писал(а):
04.06.2008 21:42
привет,

нужна програма в С чтобы включить и выключить 2 LED на платине ngw100 от atmel(Port PA Pin 19 и Port PB Pin 19) через клавиатурую. с этой програмкой диод А мaргает:

#include <avr32/io.h>
void simpleDelay (void) {
volatile unsigned int i;
for (i = 0; i != 1000000; i++);
}
int main (void) {
// PORTA 19
AVR32_PIOA.per = 1 << 19;
AVR32_PIOA.oer = 1 << 19;
while (1) {
AVR32_PIOA.codr = 1 << 19;
simpleDelay();
AVR32_PIOA.sodr = 1 << 19;
simpleDelay();
}
}

как правельно управлять диод через клавиатуру (например клавиша ENTER).

зарание спасибо

а добавить функцию getchar(), получать символ и обрабатывать банальным switch не пойдет?
Спасибо сказали:
vad1
Сообщения: 2

Re: avr32 в С програмир.

Сообщение vad1 »

RasenHerz писал(а):
04.06.2008 21:50
vad1 писал(а):
04.06.2008 21:42
привет,

нужна програма в С чтобы включить и выключить 2 LED на платине ngw100 от atmel(Port PA Pin 19 и Port PB Pin 19) через клавиатурую. с этой програмкой диод А мaргает:

#include <avr32/io.h>
void simpleDelay (void) {
volatile unsigned int i;
for (i = 0; i != 1000000; i++);
}
int main (void) {
// PORTA 19
AVR32_PIOA.per = 1 << 19;
AVR32_PIOA.oer = 1 << 19;
while (1) {
AVR32_PIOA.codr = 1 << 19;
simpleDelay();
AVR32_PIOA.sodr = 1 << 19;
simpleDelay();
}
}

как правельно управлять диод через клавиатуру (например клавиша ENTER).

зарание спасибо

а добавить функцию getchar(), получать символ и обрабатывать банальным switch не пойдет?


mozet i poidet. ja poprobuju, no ja nowichok w programirowanie, mne b@ primer. pozaluisto!!!
za schrifft ja izwenjaus russkala klawiatura ne razreschaetsja, eto ne moi PC.
Спасибо сказали:
Аватара пользователя
RasenHerz
Сообщения: 1341
ОС: Arch Linux amd64

Re: avr32 в С програмир.

Сообщение RasenHerz »

Код: Выделить всё

#include <avr32/io.h>
#include <stdio.h>

void simpleDelay (void) {
    volatile unsigned int i;
    for (i = 0; i != 1000000; i++);
}

int main (void) {
   char ch;
   for(;1;) {
      if (ch = getchar() == 0xa) { //если нажали <ENTER>
         AVR32_PIOA.codr = 1 << 19;
         simpleDelay();
         AVR32_PIOA.sodr = 1 << 19;
         simpleDelay();
         continue;
      }
      else if(ch = getchar() == 0x20){  //если <SPACE>
          AVR32_PIOA.per = 1 << 19;
          AVR32_PIOA.oer = 1 << 19;
          continue;
      }
      return 0;
   }
}

примерно так.

P.S. я понятия не имею что делает эта программа так как AVR никогда не занимался, но принцип работы думаю вам понятен.
Спасибо сказали: