реклама на сайте
подробности

 
 
> Минимальный код для работы с портом AT91SAM7
Vinterman
сообщение Nov 6 2008, 09:01
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 3-03-08
Из: г.Томск
Пользователь №: 35 572



Всем доброго времени суток! Возникла необходимость перейти с AVR на ARM-ы. Вот тут сразу незадачка вышла. Прочитал, пересмотрел, перелопатил достаточно большое количество примеров программ, литературы (Бедного редькина и Англ даташит). Купил отладочную платку, SAM7-P64, Wiggler программаторик. "Стянул" IAR с интернета, "вылечил" его и приступил к работе. Для начала решил определиться, какой же минимум подключаемых файлов необходим, ибо все примеры пестрят ТАКИМ их количеством, что порой черт ногу сломит.
Вроде подразобрался, написал первую прогу и тут же сел в лужу wacko.gif

Как и водится, решил "поиграть" ножками для начала. Но перед тем как "зашивать", как водится запустил прогу в эмуляторе.
Эмулятор работает, прога на первый взгляд выполняется. НО!!!! В регистре PMC_SCSR после сброса (Выполнение программы только начинается) ВСЕ НУЛИ!! Когда флаг PCK (состояние тактирования процессора) должен быть установлен! И многие остальные регистры, так же не выходят на свое первоначальное состояние.
После выполнения записи в регистр PIO_SODR, как я полагаю, должны установиться соответствующие биты и в регистре PIO_ODSR. (а в PIO_SODR сброситься в окне эмулятора ????) Этого не происходит!!! Что за ерунда? Что я не правильно делаю? То же самое происходит и с остальными регистрами. Скажем при установки PIO_OER, не меняется PIO_OSR.... Программировать контроллер не программировал. Думал может надо разрешить тактирование PIO и процессора, дописал соответствующие команды, нифига. Пробовал записывать регистры состояния в отдельный регистр (считывал), думал может тут баг, ведь вроде они для чтения, но умом то понимал, что блин эмулятор должен показывать, как и ожидалось, ничего не произошло smile.gif считались НУЛИ smile.gif

Вот пример программы: (прошу не критиковать код ибо все получилось в результате безрезультатных попыток на скорую руку запустить эмулятор из имеющихся под рукой программ)

// *******************************************************
// Header Files
// *******************************************************
#include "AT91SAM7S256.h"

unsigned int a;

int main (void) {

while (1)
{

volatile AT91PS_PIO pPIO = AT91C_BASE_PIOA; // pointer to PIO data structure
volatile AT91PS_PMC pPMC = AT91C_BASE_PMC;

pPMC->PMC_PCER = 1 << AT91C_ID_PIOA;
pPMC->PMC_SCER = 1 << 0;

pPIO->PIO_PER = 4; // PIO Enable Register - allow PIO to control pins
pPIO->PIO_OER = 0xFFFF; // PIO Output Enable Register
pPIO->PIO_SODR = 12; // PIO Set Output Data Register
pPIO->PIO_CODR = 4;

a = pPIO->PIO_ODSR;
// a = pPIO->PIO_CODR;

}




}






Прошу помощи!!!!! HELP!!!
Чего не хватает, где упущение, если можно , то образец минимального набора прикрипляемых файлов и кода программы хотелось бы посмотреть для управления ножками контроллера

Сообщение отредактировал Vinterman - Nov 6 2008, 09:07
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 10:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01359 секунд с 7
ELECTRONIX ©2004-2016