Jump to content

    

Markfly

Участник
  • Content Count

    10
  • Joined

  • Last visited

Community Reputation

0 Обычный
  1. Задача идентична. Буду благодарен, если скинете координаты. Нужны заглушки для таких разъемов: http://www.platan.ru/cgi-bin/qwery.pl/id=1...amp;group=31310 Спасибо.
  2. Извините, но на моем этапе это не важно... shasik, спасибо большое, все заработало!!!
  3. Не понимаю, почему. Если не слишком часто производить кратковременные нажатия, СИД не загорается...
  4. Прошу помощи. Написал такой текст. По сценарию, при удержании кнопки в течении времени декременирования "Count",по истечении этого времени, если кнопка еще нажата, загорается СИД.При отпускании кнопки, сид гаснет. Соответственно на короткие нажатия СИД не должен реагировать. НО он реагирует. Произвожу короткие последовательние нажатия и он начинает помаргивать... Подскажите, пожалуйста, в чем ошибка, чего я не учел? int main() { ConfigureButton(); //Main Loop while(1) { if((AT91C_BASE_PIOA->PIO_PDSR & 0x00100000) == 0)//Если кнопка нажата. { long int Count = Delay_3sec;//Запись в Count числа while (((AT91C_BASE_PIOA->PIO_PDSR & 0x00100000) == 0)&&(Count > 0))//Если кнопка нажата и Count не пуст. { Count = Count -1; //Декременируем Count. } AT91C_BASE_PIOA->PIO_CODR = 0x00000001; //0 on PA0, LED on/ Count пуст и кнопка еще ножата, тогда зажигаем LED. } else //Если кнопка не нажималась (или ее отпустили). { AT91C_BASE_PIOA->PIO_SODR = 0x00000001; //1 on PA0, LED off //Гасим LED. } } }
  5. SAM7S

    Спасибо, буду разбираться.
  6. SAM7S

    Не могли бы вы еще кое-что разъяснить, уважаемый aaarrr,:.. Эта строка означает, если я правильно понимаю, AT91C_BASE_PMC->PMC_PCER = 1UL << AT91C_ID_PIOA; означает, если я правильно понимаю,: Запись в регистр PMC_PCER 1-цы сдвинутой на 2, т.е. 1 в PID2. В даташите написано, что регистр PMC_PCER - регистр разрешения периферийного тактирования... Запись 1-цы в бит этого регистра означает разрешение тактирования соответствующего периферийного устройства. Тогда я ничего не понимаю... При чем тут периферия, если мы ее не используем, и при чем тут бит 2, усли мы работаем только с 0-м и с 19-м. :laughing:
  7. SAM7S

    Спасибо, ошибку с нумерацией я исправил. Ура!!! Спасибо большое. Заработало!!! Буду двигаться дальше.
  8. SAM7S

    И , может, я не правильно понял, но в даташите, вроде, написано, что это тактирование включается, если пин работает в режиме периферии?.. Или я ничего не понял?..
  9. SAM7S

    Вписал эту строку в "static void ConfigureButton()". Эффекта нет.
  10. SAM7S

    Уважаемые форумчане. Помогите, пожалуйста чайнику. Написал первую прогу под АРМ. По задумке, при нажатии на кнопку (низкий уровень на PA0), светодиод на PA19 (к катоду) должен загораться, при отпускании кнопки - тухнуть. Прошиваю МК. Никакой реакции на кнопку. Видимо я как-то неправильно считываю вход с кнопки... :help: #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 } } } http://electronix.ru/forum/style_emoticons/default/help.gif