Перейти к содержанию
    

Не определена функция delay_long или не объявлен ее прототип, если это библиотечная функция.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет, так просто нельзя. Нельзя пытаться что-то писать, не имея самых базовых знаний языка. Возьмите букварь типа Кернигана и Ричи и изучите.

 

#include "at91sam7s64.h"

#define BLINK_BIT   (1UL << 8)
#define KEY         (1UL << 0)

int main()
{
 volatile int i;

 *AT91C_PMC_PCER = 1UL << AT91C_ID_PIOA;
 *AT91C_PIOA_PER = KEY | BLINK_BIT;     // Перевели вывод в режим PIO
 *AT91C_PIOA_OER = BLINK_BIT;
 *AT91C_PIOA_ODR = KEY;     // Переключили на вход
 *AT91C_PIOA_PPUER = KEY;   // Разрешили pull-up
 *AT91C_PIOA_IFER = KEY;    // Включили входной фильтр

 for(;;)
 {
   // Чтение состояния
   if(*AT91C_PIOA_PDSR & KEY)
   {
     // Если кнопка отжата (вывод в '1')
   }
   else
   {
     // Если кнопка нажата (вывод в '0')
     *AT91C_PIOA_SODR = BLINK_BIT;
     for(i = 0; i < 2000000; i++);
     *AT91C_PIOA_CODR = BLINK_BIT;
     for(i = 0; i < 2000000; i++);
   }
 }
}

 

Не определена функция delay_long или не объявлен ее прототип, если это библиотечная функция.

Да там функций в main'е нет, какие уж delay_long :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хренотень полная. Автор присылает 3 файла. И какой же из них рабочий?

РаботаЮщего там нет фаила

дык не могу я с расширениемя прикладывать..форум пишит-запрещено..

приходится открывать код в блокноте и высылать(

код высланный aaarrr компилируется без ошибок.но не реагирует мк на нажатие. )

 

хочу вот что заметить по поводу предыдущего кода..(в рамках своеи компетенции))

у меня такое чувство что кнопка Р0 всегда "нажата", на неи 0, и поэтому 8 всегда горит.

что то наверно с pull-up???

или я что то путаю?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у меня такое чувство что кнопка Р0 всегда "нажата", на неи 0, и поэтому 8 всегда горит.

Он должен мигать при нажатой кнопке и оставаться включенным/выключенным при отжатой.

Посмотрите тестером, меняется ли уровень на PA0 при нажатии кнопки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

дык не могу я с расширениемя прикладывать..форум пишит-запрещено..

приходится открывать код в блокноте и высылать(

 

А нажать правую кнопку мыши в окне с файлами, где размещен main.c, и выбрать в открывшемся меню пункт "Копировать" затем "Вставить" и полученную копию main.c с помощью команды "Переименовать" в main.txt - это надо закончить Академию Околокомпьютерных Наук?

 

И все же, [censored] присылать три файла, если рабочий из них один? Какой, блин?

 

Модератор (rezident). Сообщение отредактировано. Нарушение п.2.1б Правил форума.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Он должен мигать при нажатой кнопке и оставаться включенным/выключенным при отжатой.

Посмотрите тестером, меняется ли уровень на PA0 при нажатии кнопки.

Да меняется проверил светодиодм. при нажатии 0. а так всегда 1.

вот еще вопросик..

Уровень, выдаваемый на линию, задается записью в регистр PIO_SODR а где мы задаем этот уровень?

 

PIOA_CODR = BLINK_BIT этим выражением мы сбрасываем этот бит.

может мы туда всегда 0 записываем, вот и горит 8 я нога всегда?

и тут же в 0 сбрасываем.

сорри если делитанство пишу)))

Изменено пользователем alexan300

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...