Сергей Борщ 134 8 июня, 2006 Опубликовано 8 июня, 2006 (изменено) · Жалоба Мне для примера хотя бы увидеть программу, которая бы устанавливала в единицу все разряды. #include <stdint.h> #include <ioAT91SAM7S64.h> void main() { AT91C_BASE_PIOA->PIO_PER = (uint32_t)-1; // all outputs are IO AT91C_BASE_PIOA->PIO_OWER = (uint32_t)-1; // direct write to all pins allowed for(;;) { AT91C_BASE_PIOA->PIO_ODSR = 0; // all outputs = 0 AT91C_BASE_PIOA->PIO_ODSR = (uint32_t)-1; // all outputs = 1 AT91C_BASE_PIOA->PIO_SODR = (1<<0); // PIOA.0 = 1 AT91C_BASE_PIOA->PIO_CODR = (1<<0); // PIOA.0 = 0 } } примерно так... Изменено 8 июня, 2006 пользователем Сергей Борщ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 8 июня, 2006 Опубликовано 8 июня, 2006 · Жалоба Спасибо. :) Как увидеть содержимое регистров в EW-ARM? т.е. как по мере выполнения программы у меня меняется AT91C_BASE_PIOA->PIO_PDSR и любой другой регистр? Регистры общего назначения, статуса при отладке отображаются, но непонятно где посмотреть все прочие регистры. Добаления в список watch не помогает... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vet 0 9 июня, 2006 Опубликовано 9 июня, 2006 · Жалоба В IAR все спец.регистры показываются там же, где и обычные. Ничего добавлять/настраивать не нужно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 134 9 июня, 2006 Опубликовано 9 июня, 2006 · Жалоба Спасибо. :) Как увидеть содержимое регистров в EW-ARM? т.е. как по мере выполнения программы у меня меняется AT91C_BASE_PIOA->PIO_PDSR и любой другой регистр? Регистры общего назначения, статуса при отладке отображаются, но непонятно где посмотреть все прочие регистры. Добаления в список watch не помогает... Или в том же окне (там в верхней части окна есть выпадающее меню периферии-где написано CPU registers) или открыть еще одно такое же (View->Registers) и в нем выбрать какую периферию смотреть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 10 июня, 2006 Опубликовано 10 июня, 2006 · Жалоба Спасибки, всё нашел :a14: Ещё вот вопросец есть: есть ли какой-нибудь симулятор, чтобы тестировать работу контроллера в окружении периферии? Например, в Proteus'е есть некоторые LPC21xx контроллеры, скоро ли там появятся и AT91?.. :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Wano 0 11 июня, 2006 Опубликовано 11 июня, 2006 · Жалоба Людиии HELP. Что за примудрости в Keil. Мигал я светодиодами на платке. Вот стандартная фирмовая запись обработчика прерывания: long timeval; /* Timer Counter 0 Interrupt executes each 10ms @ 60 MHz CPU Clock */ void tc0 (void) __irq { ++timeval; T0IR = 1; // Clear interrupt flag VICVectAddr = 0; // Acknowledge Interrupt } Пытаюсь внешнюю переменную timeval из головной программы изменить, а ничё не выходит. Зато сравнивать могу. Неужели тут уже критические секции мудрить надо как в вижуале? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 11 июня, 2006 Опубликовано 11 июня, 2006 (изменено) · Жалоба Может оптимизатор возомнил из себя слишком умного и перемудрил. Попробуйте объявить переменную так: volatile long timeval; А мигает то с нормальной скоростью? Неужели тут уже критические секции мудрить надо как в вижуале? А вы что думали? Прерывание может произойти в любой момент. Сосбсно в любом проце так. Если будете просто обнулять переменную (записывать в неё любое число), то без проблем. Запрещать прерывания не надо. А если в команде попытаетесь её прочитать, что-то добавить например и записать обратно, то учтите что она могла уже измениться. Изменено 11 июня, 2006 пользователем GetSmart Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Wano 0 12 июня, 2006 Опубликовано 12 июня, 2006 · Жалоба Агааааааа volatile long timeval; прокатило. О как. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
e-tarasov 0 19 июня, 2006 Опубликовано 19 июня, 2006 · Жалоба Люди помогите разобраться с примерами от атмела от их либов голова кругом идет. Может книгу какую нибудь посоветуете. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
beer_warrior 0 19 июня, 2006 Опубликовано 19 июня, 2006 · Жалоба Ручками, ручками. Пока не лезть в USB и прерывания, все достаточно просто - главное помнить: 1.Переключение преиферии 2.Подачу тактовой на каждый блок. 3.Отдельные пары регистров, для enable/disable. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Playnet 0 13 октября, 2006 Опубликовано 13 октября, 2006 · Жалоба http://troosh.pp.ru/arm/ не находится... Если у кого сохранил, просьба скинуть... И еще.. Вроде, были ARM, стали SAM... Что произошло и что с совместимостью? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SpiritDance 0 13 октября, 2006 Опубликовано 13 октября, 2006 · Жалоба Были RM стали Smart ARM, смена названия исключительно маркетоидная на мой взгляд. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vxzxc 0 16 октября, 2006 Опубликовано 16 октября, 2006 · Жалоба ARM - 32bit AVR - 8bit не значит ли это, что при переходе с AVR на ARM памяти потребуется больше? т.е. например, есть проект на IAR C под mega128(128кбайта flash + 32кбайта ОЗУ внешнее) пусть и flash, и ОЗУ занято полностью переносим проект под ARM, например sam7(128 flash, 32 ОЗУ) и вот вопрос: хватит ли памяти у ARM'а, или памяти надо заведомо больше (как по flash так и/или по ОЗУ)? есть ли возможность мудрить с выравниванием данных? но видимо лучше этого не делать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 16 октября, 2006 Опубликовано 16 октября, 2006 · Жалоба ARM - 32bit AVR - 8bit не значит ли это, что при переходе с AVR на ARM памяти потребуется больше? т.е. например, есть проект на IAR C под mega128(128кбайта flash + 32кбайта ОЗУ внешнее) пусть и flash, и ОЗУ занято полностью переносим проект под ARM, например sam7(128 flash, 32 ОЗУ) и вот вопрос: хватит ли памяти у ARM'а, или памяти надо заведомо больше (как по flash так и/или по ОЗУ)? Собирал один и тот же тестовый пример (dhrystone) для AVR, ARM и ARM(Thumb). В последнем случае расход флеш был наиболее экономный. По ОЗУ ситуация чуть хуже, но я не делал ручной оптимизации данных, т. е. не заменял int на short и т. д. есть ли возможность мудрить с выравниванием данных? но видимо лучше этого не делать Такая возможность есть и делать это можно, но в разумных пределах, т. к. доступ к упакованным данным длительнее и накладнее по размеру программы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться