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

Hexart

Свой
  • Постов

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Участник
    Участник
  • День рождения 22.03.1979

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array
  1. UART прерывания

    Спасибо! понятно. Получается без while тоже можно, но тогда он потом туда вернется, если у него еще есть прерывания от других источников в этот момент.
  2. UART прерывания

    Привет всем. Разбираюсь с UART и прерываниями. Разбираю код из примера Keil UART с обработкой прерывания. Никак не могу понять зачем там while. В других примерах нету в обработчике while. Если произошло прерывание по UART1 какое либо. Там в регистре U1IIR - есть три бита (3:1) IntId: Iterrupt identification. Но может быть записан идентификатор только одного прерывания, который выбирается в switch. После считывания значений в case'ax, нулевой бит в U1IIR, в котором записан "0", свидетельствующий о прерывании устанавливается в "1". Если во время обработки прерывания, пришло еще одно прерывание, опять по UART1, то в регистр U1IIR опять запишется значение о новом прерывании еще до выхода из обработчика? void sio_irq (void) __irq { volatile char dummy; volatile char IIR; struct buf_st *p; /*------------------------------------------------ Repeat while there is at least one interrupt source. ------------------------------------------------*/ while (((IIR = U1IIR) & 0x01) == 0) { switch (IIR & 0x0E) { case 0x06: /* Receive Line Status */ dummy = U1LSR; /* Just clear the interrupt source */ break; case 0x04: /* Receive Data Available */ case 0x0C: /* Character Time-Out */ p = &rbuf; if (((p->in - p->out) & ~(RBUF_SIZE-1)) == 0) { p->buf [p->in & (RBUF_SIZE-1)] = U1RBR; p->in++; } break; case 0x02: /* THRE Interrupt */ p = &tbuf; if (p->in != p->out) { U1THR = p->buf [p->out & (TBUF_SIZE-1)]; p->out++; tx_restart = 0; } else { tx_restart = 1; } break; case 0x00: /* Modem Interrupt */ dummy = U1MSR; /* Just clear the interrupt source */ break; default: break; } } VICVectAddr = 0; /* Acknowledge Interrupt */ }
  3. Размещение в розетке оптимальным образом и соответстующий подбор компонентов (преобразователи ~220->5, реле, разъемы, крепления всего этого дела, универсальность?) может быть займет больше времени, чем разводка печатной платы... А может и нет.... Но вещь более неопределенная, чем разводка и пайка. Я это к тому, что перед отправлением в плавание это нужно уточнить - есть ли габаритный чертеж платы или уже нет...
  4. Может быть в сша дипломы не продаются. А может он не купил диплом, потому что это неправильно. :)
  5. А что лучше придумать там можно на стыковке? :)
  6. Вы правильно выбрали форум. Электронщик может разобраться во всем (если уж в электронике смог разобраться). За достаточно короткий срок. Когда же сюда вакансии для водителя Газели публиковать начнут? ))
  7. Идите конечно, пока хочется. На интуит или специалист.ру. Тем более онлайн обучение сэкономит кучу времени. Насчет денег не знаю, мало это или много. На специалисте курсы дорогие все. Качество образования? Наверное лучше, чем самостоятельно тот же материал изучать, эффективнее будет потраченное время. Диплом, сертификат тоже неплохо, но в дополнение к другому, недистанционному! :) Я тоже пойду,только не знаю нафига мне это)). Но чето захотелось поучиться... На интутите 12 тыщ ведь только за консутльтации в течение часа раз в неделю по каждому предмету и за организацию очной защиты диплома. Можно и бесплатно без диплома)). Хотя все-таки консультации, помимо конкретных ответов дадут уверенность в том, что ты правильно все понимаешь или делаешь. Потому что без общения, без учителя учиться сложно чисто психологически. Хотя там есть контрольные задания, но это немного не то, хотя тоже неплохо.
  8. А ну да, давали же ссылку выше, почитал... Все-таки это провокация тролля на флуд :)
  9. Интересно, а провокация такого рода может быть законной? Т.е. как проверочная закупка, например? Или со стороны сотрудника(ов) "органа" это уголовно наказуемое деяние?
  10. Если плату модифицировать механик будет - разъемы подвигать там захочет, конечно сборкой будет пользоваться...
  11. В Solidworksе из тыщи файлов (сборки), конструктор легким движением руки может сделать один файл (сохранить сборку как деталь). Но станет ли быстрей работать... наверное, станет. Я бы конструктору-Солидворкщику отдал бы как есть, и сообщил бы, что мелочь вы можете удалить, если будет тормозить, а то потом плата не влезет корпус и вы будете виноваты :)
  12. Графическими линиями (не wire, а line) - для платы - неразведенную часть проигнорирует, для монтажа - только картинка нужна. Можно надписать над линией чего-нибудь. Я бы так сделал.
  13. Как вариант (я так выравниваю, в смысле измеряю и изменяю длину :) ) 1) Edit->Select->Connected Copper 2) Reports -> Measure Selected Objects, Конечно эти функции на панель в виде кнопок надо вытащить - каждый раз в меню искать - это извращение. Или Tools -> Interactive length tuning -> змейку рисует и показывает текущую длину. Змейка настраивается кнопками 1, 2, 3, 4. Только ща заметил, что при интерактивной трассировке снизу в статусном поле и в табличке, которая за курсором бегает длина цепи показывается.
  14. Я смотрю на плату, те переходные, которые открыты, 0.4 диаметр металлизированного отверстия, припоем не залиты, думаю и 0.3 вряд ли зальется, а "как и почему" - не знаю, но, залужены HAL, наверное, очень тонкий слой лужения. :).
  15. Ух какие веселенькие картинки. Но веселей будет со стороны посмотреть на разработчика, который будет пытаться вручную 1 линию подправить на этой картинке :).
×
×
  • Создать...