Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


Результаты опроса: Запуск "на коленке" часть 2. Что дальше будем обсмакивать?
RTC (часы реального времени) 119 11.41%
USB 540 51.77%
Базовые навыки работы с портами ввода-вывода 247 23.68%
АЦП 108 10.35%
ЦАП 29 2.78%
Голосовавшие: 1043. Вы ещё не голосовали в этом опросе

 
Опции темы
Непрочитано 19.01.2011, 20:09  
chudomedved
Прохожий
 
Регистрация: 23.12.2008
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
chudomedved на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Добрался я наконец до UART-а LPC2000. С передачиком модуля все ясно, а с приемником не понятно. Максимум что смог найти - это примеры кода, посылающие строку. Для приемника примеров нет, да и описание в UserManual LPC2101 немного запутанное. Мои вопросы:
1)При приеме байтов по заполению RXFIFO срабатывает прерывание RDA/данные, чтобы его очистить надо читать U0RBR, пока не снимется флаг RDA в U0LSR?
2)Написано что есть прерывание LSR/статус. Статус появляется немного позже чем RDA? Вот тут опять непонятно, для очистки прерывания надо читать идентификационный регистр U0IIR и/или статусный U0LSR?
3)Как правильно обрабатывать события приемника(например алгоритм приема символа)?
Будет отлично если есть образцовые куски кода на эту тему.
Реклама:
__________________
Образцы заявлений, жалоб, претензий http://extralaw.ru/
Образец иска в суд. Исковые заявления на http://isksud.ru/
chudomedved вне форума  
Непрочитано 19.01.2011, 23:40  
serb-radio
Гражданин KAZUS.RU
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

я выкладывал уарт для филипсов, поглядите выше
__________________
То, что нас не убивает - делает нас сильнее
serb-radio вне форума  
Непрочитано 20.01.2011, 13:47  
diglook
Временная регистрация
 
Регистрация: 09.09.2009
Сообщений: 91
Сказал спасибо: 10
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
diglook на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

В IAR есть хороший пример C:\Program Files\IAR Systems\Embedded Workbench 5.4\arm\examples\NXP\LPC24xx\IAR-LPC-2468\simple\UART
Сам по нему учился, и добавить еще несколько USART плевое дело
diglook вне форума  
Непрочитано 21.01.2011, 10:53  
AlexNS
Прохожий
 
Регистрация: 21.03.2009
Сообщений: 2
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
AlexNS на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Подскажите пожалуйста, работаю с TE-LPC2478LCD5.6, проблема с выводом изображений на дисплей. Имеется структура такого типа:
Код:
/* GIMP RGB C-Source image dump (Picture640x480RGB.c) */

const struct 
{
  unsigned int 	 width;
  unsigned int 	 height;
  unsigned int 	 bytes_per_pixel; // 3:RGB, 4:RGBA  
  unsigned char	 pixel_data[640 * 480 * 3 + 1];
} 

gimp_image[] = {
  640, 480, 3,
  "\4\0\0\6\7\2\2\14\4\0\10\0\0\4\0\1...
...
не могу понять как пользоваться этой структурой для вывода картинок:
Код:
  uint16_t *ptr = (uint16_t *)_lcd_buffer;
  uint16_t *end = (uint16_t *)(_lcd_buffer + (640 * 480) * 2);
 int i=0;
  while(ptr ‹ end){
    *ptr++ = gimp_image[i];
    i++;
Естественно ругается на *ptr++ = gimp_image[i];

Последний раз редактировалось AlexNS; 21.01.2011 в 12:07.
AlexNS вне форума  
Непрочитано 21.01.2011, 15:56  
Serega_B
Прописка
 
Регистрация: 09.11.2010
Сообщений: 102
Сказал спасибо: 4
Сказали Спасибо 28 раз(а) в 22 сообщении(ях)
Serega_B на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Код:
/* GIMP RGB C-Source image dump (Picture640x480RGB.c) */

const struct 
{
  unsigned int 	 width;
  unsigned int 	 height;
  unsigned int 	 bytes_per_pixel; // 3:RGB, 4:RGBA  
  unsigned char	 pixel_data[640 * 480 * 3 + 1];
} 

gimp_image[] = {
  640, 480, 3,
  "\4\0\0\6\7\2\2\14\4\0\10\0\0\4\0\1...
...
Код:
  uint16_t *ptr = (uint16_t *)_lcd_buffer;
  uint16_t *end = (uint16_t *)(_lcd_buffer + (640 * 480) * 2);
 int i=0;
  while(ptr ‹ end){
    *ptr++ = gimp_image[i];
    i++;
Цитата:
Естественно ругается на *ptr++ = gimp_image[i];
Код:
  unsigned char *ptr = (unsigned char*)_lcd_buffer;
  unsigned char*end = (unsigned char*)(_lcd_buffer + (640 * 480) * 2);
 int i=0;
  while(ptr ‹ end){
    *ptr++ = gimp_image.pixel_data[i];
    i++;
}
Я так думаю.
Не уверен, что выведет картинку, но компилятор ругаться не должен.
Serega_B вне форума  
Непрочитано 25.01.2011, 02:02  
const3
Прохожий
 
Регистрация: 02.06.2010
Сообщений: 3
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
const3 на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Здраствуйте у меня есть плата MMnet1002 польская. Микроконтроллер At91Sam92g60. На борту стоит linux. Пытаюсь программировать таймер, но что-то не сильно получается. Примеры для lpc не годятся так как ОС не дает прямого доступа к памяти. Программирую устройства посредством отображения адресов в ОП.
Пример кода :
Тут я делаю маппинг таймера
AT91S_TC *tc_map(unsigned int tcbase)
{
int fd;
void *base;

AT91S_TC *tc;

off_t addr = tcbase;

if ((fd = open("/dev/mem", O_RDWR | O_SYNC)) == -1) {
fprintf(stderr, "Cannot open /dev/mem.\n");
exit(EXIT_FAILURE);
}

fprintf(stderr, "/dev/mem opened.\n");

base =
mmap(0, MAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd,
addr & ~MAP_MASK);

if (base == (void *) -1) {
fprintf(stderr, "Cannot open /dev/mem.\n");
exit(EXIT_FAILURE);
}

fprintf(stderr, "Memory mapped at address %p.\n", base);

tc = base + (addr & MAP_MASK);

return tc;
}

Тут инициализирую таймер:

unsigned int timer_init(AT91S_TC *tc,int channel)
{
// Timer1 Init


tc-›TC1.TC_CCR = TC_CLKDIS ; /* Disable the Clock Counter */
tc-›TC1.TC_IDR = 0xFFFFFFFF ;
unsigned int dummy = tc-›TC1.TC_SR ;
tc-›TC1.TC_CMR = TC_CLKS_MCK1024 |
TC_CPCTRG ;
tc-›TC1.TC_CCR = TC_CLKEN ; /* Enable the Clock counter */
tc-›TC1.TC_IER = TC_CPCS ; /* Validate the RC compare interrupt */

AIC_InitHandler(timer1_c_irq_handler);

tc-›TC1.TC_RC = 0xFBC5;
tc-›TC1.TC_CCR = TC_SWTRG ;

return dummy;
}

Также делаю маппинг aic
Дальше настраиваю AIC
void AIC_InitHandler(unsigned int timer1_asm_irq_handler)
{

aic=aic_map(AIC_BASE);
printf("handler=%d",timer1_asm_irq_handler);
aic-›AIC_IDCR = (1‹‹ AT91C_ID_TC1) ; /* Disable timer 1 interrupt at AIC level */
aic-›AIC_SVR[ AT91C_ID_TC1] = timer1_asm_irq_handler ; /* Set the TC1 IRQ handler address */
aic-›AIC_SMR[ AT91C_ID_TC1] = ( AIC_SRCTYPE_INT_LEVEL_SENSITIVE | 0x4 ); /* Set the trigg and priority for TC1 interrupt */
aic-›AIC_ICCR = (1‹‹ AT91C_ID_TC1) ; /* Clear the TC1 interrupt */
aic-›AIC_IECR = (1‹‹ AT91C_ID_TC1) ; /* Enable the TC1 interrupt */

}

Проверяю, вижу что таймер тикает(читаю регистр периодически), но не вызывает прерывания.
Тут я опустил описания констант. Их взял из хедеров openwrt.
И еще в одних хедерах Id таймера1 = 5, а в других это 18 бит установленный в '1', пробовал и так и так, но вс равно не работает.

Незнаю где я ошибся или чего не сделал. Помогите кто сможет.

Последний раз редактировалось const3; 25.01.2011 в 02:07.
const3 вне форума  
Непрочитано 27.01.2011, 18:12  
v2010
Прохожий
 
Регистрация: 24.05.2010
Сообщений: 3
Сказал спасибо: 1
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
v2010 на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от kison Посмотреть сообщение
Она и есть - нереальная. Хоть на асме, хоть на чем. Вывод в порт - 2 такта. Итого на период 2+2=4 такта. Такт 2142 - 60МГц. Максимальная частота, достижимая программно - 15МГц, а вовсе не 20. Для 20 нужно разогнать процессор и функции махания ножками перенести в ОЗУ. Но это уже совсем не асм
AT91SAM7S128 программно переключал на 192 МГц, прекрасно работает мигалка. Задача простая - дергать ножки с частотой 35 МГц с заданной скважностью и кратной этой частоте, но каким драйвером и ключем MOSFET (есть и такие) дальше дергать - спецы - подскажите .
С уважением.
v2010 вне форума  
Непрочитано 02.02.2011, 12:36  
Dimon075
Прохожий
 
Регистрация: 02.02.2011
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Dimon075 на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от v2010 Посмотреть сообщение
Отладочная плата на AT91SAM7S128. http://www.kosmodrom.com.ua/razrabotka/91sam7s64_db.php
Проект полностью на ассемблере типа "Hello World" - мигание светодиодов, может кому пригодится для быстрого старта на асме

PS: интерсно, что никто не интересуется асмом, программирую только на нем и считаю - лучшим языком для профи есть Asembler, конечно, нужно знать и коверканные языки асма - типа СИ и пр. Не против СИ - но программирую на Pascal. Мое глубокое ИМХО
А на каком Паскале, если не секрет?
Dimon075 вне форума  
Непрочитано 02.02.2011, 13:15  
alexgap
Гражданин KAZUS.RU
 
Аватар для alexgap
 
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
alexgap на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от v2010 Посмотреть сообщение
Отладочная плата на AT91SAM7S128. http://www.kosmodrom.com.ua/razrabotka/91sam7s64_db.php
Эту гадость брать категорически не советую. Плата сырая, важные вещи - упущены, сэкономлено на всем. Может по неосторожности превратится в кирпич, и джамперами вы ее не восстановите, прийдется подпаивать проводки к пинам TQFP корпуса.
Вообщем аппофеоз непродуманности, недоукомплектованности и бреда.
__________________
.

В мире всего два типа людей: те у кого был ZX Spectrum, и те у кого его не было.
alexgap вне форума  
Непрочитано 08.02.2011, 12:10  
Snacker
Временная регистрация
 
Регистрация: 16.05.2007
Сообщений: 59
Сказал спасибо: 1
Сказали Спасибо 10 раз(а) в 9 сообщении(ях)
Snacker на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

alexgap, скажите, а не ожидается ли продолжение начатого?
Snacker вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 07:37.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot