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

XShadow

Участник*
  • Постов

    62
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о XShadow

  • Звание
    Участник
    Участник
  1. Здравствуйте. По прерыванию таймера нужно отправить двухбайтное число. Отправляю посылками по 1 байту (почемуто функция USART_SendData при попытке отправить двухбайтное число виснет). Код: void TIM1_UP_IRQHandler(void) { int i = 0; uint8_t low = 0; uint8_t high = 0; if (TIM_ADC->SR & TIM_SR_UIF) { TIM_ADC->SR &= ~TIM_SR_UIF; high = (uint8_t) (ADC_Val >> 8); low = (uint8_t) (ADC_Val & 0x00FF); print(USART_DIAG, high); //high print(USART_DIAG, low); //low } } void print(USART_TypeDef* TargetUSART, uint16_t Data) { USART_SendData(TargetUSART, Data); while (USART_GetFlagStatus(TargetUSART, USART_FLAG_TC) == RESET); //виснет тут } Первый принт проходит нормально а на втором виснет в цикле проверки флага USART_FLAG_TC. В чем может быть причина? Спасибо Проверил код в функции main. В этом случае он работает. Т.е именно в прерывании работать не хотят.
  2. Большое спасибо за информацию! А где можно узнать такие подробности как колличество тактов на прерывания и т.д?
  3. Здравствуйте. Пытаюсь завести прерывания по таймеру с частотой 20 МГц. Попытки это сделать успехом не увенчались поэтому я решил попробовать сделать его с максимально возможной частотой. Для этого написал следующий код: void TIM_Configuration(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); /* Time base configuration */ TIM_TimeBaseStructure.TIM_Period = 1; TIM_TimeBaseStructure.TIM_Prescaler = 0; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); /* TIM IT enable */ TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE); /* TIM enable counter */ TIM_Cmd(TIM1, ENABLE); } void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; /* Enable the TIM_ADC global Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = TIM_ADC_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); } void TIM1_UP_IRQHandler(void) { if (TIM_ADC->SR & TIM_SR_UIF) { TIM_ADC->SR &= ~TIM_SR_UIF; HSO_ADC_PORT->BSRR = HSO_ADC_CLK; //нога в единицу HSO_ADC_PORT->BRR = HSO_ADC_CLK; //нога в ноль } } int main(void) { /* NVIC configuration */ NVIC_Configuration(); /* Timer configuration */ TIM_Configuration(); while (1) { } } Проблема в том что период следования импульсов получился около 520ns. (частота на GPIO установлена в 50 МГц т.е он хотябы с этой частотой должен был отработать). В чем может быть проблема? Как заставить таймер работать от нужной частоты?
  4. Владимир, большое спасибо. Маленький вопрос - а как сделать привязку на всех слоях?
  5. Доброго времени суток. Столкнулся с парой глюков в альтиуме. Если кто нибудь сталкивался помогите пожалуйста разрешить их. Собственно глюки: 1) Допустим у меня есть диод у которого 2 ноги. Я создал библиотеку схематика, все нормально. Создаю посадочное место. Десигнаторы у ног соответственно 1 и 2. Создаю Pad с номером 1 и 2 соответственно. Если я хочу в посадочном месте создать несколько падов с одним и темже десигнатором то когда помещаю их на плату один из падов будет подключен к нужной цепи а остальные останутся неподключенными хотя десигнаторы одинаковые. 2) Есть несколько однотипных румов. Разместил в одном компоненты и ранжировал на остальные. Все нормально. Далее изменил у компонента на схематике нумерацию. Применил изменения к печатной плате. Все нормально. Однако когда теперь пытаюсь сделать ранжирование компонентов в румах вываливается ошибка Duplicate Channel Offsets 3) Иногда исчезает привязка к центру. Т.е допустим когда разводишь цепь то если приблизить к паду курсор он автоматически встает на центр пада и вокруг курсора появляется кружок. В некоторых PCB эта привязка работает а в некоторых нет. Заранее благодарен!
  6. Контроллер IDE(ATA)

    Здравствуйте. Если у кого нибудь есть ссылочка на описание работы сабж с временными диаграммами и т.д поделитесь пожалуйста. Имеется ввиду как информация по конкретному контроллеру так и просто по интерфейсу. Заранее благодарен
  7. А не лучше ли те провода что огибают обе микросхемы по правой стороне платы пустить по нижнему слою? намного короче проводники получатся
  8. Попытаюсь сформулировать. 1) Дисплей вроде с контроллером но достаточно специфический http://www.digikey.com/scripts/dksearch/dk...name=73-1335-ND 2) Проигрываемый формат видео WMV, AVI, MPEG-4, XviD, DivX и под вопросом H.264. Аудио - MP3,AAC,OGG Цель всего этого - сделать портативный плеер. Посему ARM11 либо х86 процессоры тут врятли подойдут (приличное потребление и т.д)
  9. Вопрос по выбору МК

    Здравствуйте. Подскажите пожалуйста микроконтроллер который справится с проигрыванием видео со звуком и разрешением 320х240 (кстати дисплей с интерфейсом RGB) желательно с низким потреблением. Я присматривался к AT91SAM7L однако он врятли потянет проигрывание видео. Может быть использовать что нибудь из серии AVR32 (какие нибудь UC3A или UC3B). Посоветуйте пожалуйста что нибудь
  10. AlexandrY, я вас не очень понял. Какая собственно разница на чем запущен линукс если он запущен? Сборка линукса Thinstation как раз предназначена для работы с различными протоколами удаленного доступа (ICA, RDP, X и т.д). Т.е куда он будет подрубаться, к х86 или какой либо друго машине смысла не имеет, протокол то один и тот же
  11. Тогда такой вопрос, а как у этого кристала с прошивкой? Помнится раньше чтобы его шить обязательно нужен был JTAG ICE 2 который стоит баксов 500. Или народные умельцы уже чтото придумали чтоб это обойти?)
  12. Объясню задачу еще подробнее) У нас в универе курсач и я хотел сделать в качестве него терминальный клинет. Т.е будет мелкий модуль который будет иметь 1 усб порт, 1 д-саб порт, 1 эзернет ну и один вывод пс/2 (или еще один усб под клаву). На всем этом хозяйстве будет дружно крутиться Thinstation (специальная сборка линукса под терминальные клиенты). Насчет 1280х1024 это я наверно погорячился) Для терминала думаю за глаза хватит 800х600 или даже 640х480. По производительности тоже думаю что мегагерц 250-400 за глаза хватит (впринципе тоже зависит от задачи но это всетаки курсач :)). Оперативы как уже говорил метра 64. Сначала думал использовать AVR32 (AP7000 и тому подобные). Вроде он довольно шустрый и не очень дорогой (помоему 15-17 вечнозеленых). Напрягает что он довольно сыроватый (читал даташит правда не на него а на UC3A, это ужас просто) и вопрос порта на него линкса в некоторых аспектах неясен. Насчет архитектуры ARM9 и в частности камешка от атмела. Он не настолько шустр однако он проверен и всяческих тулчейнов под него больше. Линукс уже много раз под него портировали, с этим проблем нет. С блекфином если честно вообще не знаком. Подкупает тактовая частота в 400 мгц и то что он дсп (будет даж играть видео :)) Однако не знаю как у него с линуксом и еще у него не очень богатая переферия (в сравнении с атмелом). Еще для возможности все это спокойно реализовать хотелось бы как говорится дешево и сердито, сами понимаете у студента с деньгами не очень) Вот вроде самое полное описание задачи, наверно с этого и стоило начать :)
×
×
  • Создать...