20.07.2011, 11:16
|
|
Частый гость
Регистрация: 23.05.2009
Сообщений: 46
Сказал спасибо: 1
Сказали Спасибо 4 раз(а) в 2 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от Easyrider83
|
Как в ней изменить конкретный бит не меняя значения остальных?
|
если речь о Cortex, для изменения состояния одного бита удобнее использовать Bit banding
|
|
|
|
20.07.2011, 14:31
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Нашел весь интересующий меня материал. Большое спасибо!
|
|
|
|
21.07.2011, 20:06
|
|
Частый гость
Регистрация: 16.01.2010
Сообщений: 14
Сказал спасибо: 1
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Помогите с прерыванием по нажатию кнопки (только начинаю разбираться с АРМ ....)
#include ‹at91sam7s256.h›
#define LED0 (1‹‹0) // PA0
#define LED1 (1‹‹1) // PA1
#define LED2 (1‹‹2) // PA2
#define LED3 (1‹‹3) // PA3
#define LED4 (1‹‹27) // PA27
#define LED5 (1‹‹28) // PA28
#define LED6 (1‹‹29) // PA29
#define LED7 (1‹‹30) // PA30
#define SW0 (1‹‹19) // PA19
#define SW1 (1‹‹20) // PA20
#define SW2 (1‹‹15) // PA15
#define SW3 (1‹‹14) // PA14
int ex_int_handler ()
{
AT91S_PIO *pPIO = AT91C_BASE_PIOA;
pPIO-›PIO_CODR = LED0; // LED0 ON
}
int main()
{
AT91S_PIO *pPIO = AT91C_BASE_PIOA;
AT91S_PMC *pPMC = AT91C_BASE_PMC;
AT91S_AIC *pAIC = AT91C_BASE_AIC;
pPIO-›PIO_OER = LED0; // Output Enable Register
pPIO-›PIO_SODR = LED0; // LED0 OFF
pPMC-›PMC_PCER = 1 ‹‹ AT91C_ID_PIOA; // Peripheral Clock Enable Register
pPIO-›PIO_IER = SW0; // Interrupt Enable Register PA19 SW0
pPIO-›PIO_IMR = SW0; // Interrupt Mask Register PA19 SW0
pAIC-›AIC_SVR[AT91C_ID_PIOA] = (unsigned int)ex_int_handler;
pAIC-›AIC_IECR = (1 ‹‹ AT91C_ID_PIOA);
while (1)
{
}
}
Последний раз редактировалось rtyugh; 21.07.2011 в 20:48.
|
|
|
|
22.07.2011, 20:27
|
|
Прохожий
Регистрация: 02.05.2010
Сообщений: 7
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
имеется проект на FreeRTOS V4.1.3 под AT91SAM7S256 среда IAR for ARM.
нужно настроить прерывания на получение байта по DBGU USART порту.
если б небыло RTOS код выглядел бы:
Код:
|
//* Enable USART IT error and AT91C_US_ENDRX AT91F_US_EnableIt((AT91PS_USART)AT91C_BASE_DBGU,AT 91C_US_RXRDY);
//* open interrupt
AT91F_AIC_ConfigureIt ( AT91C_BASE_AIC, AT91C_ID_SYS,USART_SYS_LEVEL,AT91C_AIC_SRCTYPE_INT _LEVEL_SENSITIVE, DBGU_irq_handler);
AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_SYS); |
но AT91C_ID_SYS занят RTOS`ом - таймером который переключает таски , как-то можно настроить прерывание? какие идеи?
Последний раз редактировалось Lestatlvv; 23.07.2011 в 17:17.
|
|
|
|
04.08.2011, 11:51
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
А где можно найти описание регистров семейства cortex m0? В даташите много всякой лабуды. Но по делу ничего.
|
|
|
|
04.08.2011, 12:10
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Микрочипу - Микрочипово, Атмэлу - Атмэлово, АРМу - АРМово...
http://infocenter.arm.com/help/index...13d/index.html
|
|
|
|
04.08.2011, 12:16
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Ну хоть убейте, не могу найти. LPC пошел сразу. Нашел регистры, сконфигурировал, заработало. Вся информация в даташите. А с STM безобразие. Ничего найти не возможно. Информация по крупинкам.
|
|
|
|
04.08.2011, 12:27
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
У док LPC, STM и камасутры... похоже один АФФТОР... ![Валяюсь от смеха](images/smilies/icon_biggrin.gif)
У LPC тоже не всё гладко, описание регистров модулей по всей доке разбросано... ![Очень смешно](images/smilies/icon_veryhappy.gif)
К этому надо просто привыкнуть...
|
|
|
|
04.08.2011, 13:24
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Чтобы начать работать с библиотеками, надо освоить регистры. А как их освоить, если их нигде нет? Эта плата дисковери пьет мою кровь. Например, зажечь диод. Функция идет в другой файл, где описан диод. Затем в третий - где функция зажечь. Инициализация порта на вывод тоже описана. Почти так же весело. Пока соберешь в голове все эти хвосты, пока перечитаешь все эти файлы с тоннами комментариев... уже забудешь, с чего начал. Казалось бы - элементарная задача. Но сколько забирает сил.
|
|
|
|
04.08.2011, 13:33
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от Easyrider83
|
Чтобы начать работать с библиотеками, надо освоить регистры. А как их освоить, если их нигде нет?
|
Научитесь отличать CMSIS от библиотек... ![Рот до ушей](images/smilies/icon_doushei.gif)
Библиотеки там действительно тяжёлые и неповоротливые... регистры расписаны в хидере проца... Есть куча примеров без применения библиотек...
STM32... это когда "долго запрягаешь, но быстро едешь"...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:24.
|
|