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

MMP

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

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

  • Посещение

Весь контент MMP


  1. Защита AVR

    Подскажи как их проверять.
  2. Подскажите как cport310 прицепить к Borland
  3. AT86RF211

    Подскажите, что это за зверь? Вернее не нашел в Даташите на какое расстояние осуществляется передача. И нужно ли её программировать?
  4. В чем глюк?

    Причем так работает и моя версия и версии с темы:"Исходники". Пишу в ICC. А друг пишет в Кодевижн, и там все работаем на этом же железе. Если надо выложу исходники.
  5. В чем глюк?

    Совсем запарился не пойму в чем глюк? Работаюпо TWI c DS 1307 в DIP корпусе работет все идеально, а SMD встает в ошибку черезнесколько секунд. В чем может быть разница.
  6. Нужна принципиальная схема блока питания фирмы Schroff MPS 015. Или хотя бы марка и данные трансформатора цепи дежурного питания (маркиротка 8436 9652 FEE T).
  7. modbus и avr

    Может кто-нить даст ссылку на пример реализации протокола modbus rtu для avr на языке С.
  8. вопрос по ds1307

    Тогда уж не три, а четыре if(hours<0x00){hours = 0x23} плюс восемь на минуты и т.д. тоже геморно, так тоже пробовал
  9. вопрос по ds1307

    Может кто посоветует как выполнить перевод часов. Скажем регист часов содержит 0x22, что равно 22 часам. hours = 0х22; hours++; но фишка в том, что в ds записывается и 0x25 и 0х29. Приходится выполнять двойное преобразование: BCD_DEC(hours); 0x22 -- 0x16 hours = DEC; //DEC возвращается BCD_DEC hours++; DEC_BCD_COR(Add_hr,hours); // обратное преобразование с записью в ds к тому же писать функцию сравнения времени Может возможно как-нить непосредстренно с ds, не прибегая к куче преобразований.
  10. вопрос по TWI

    А можно с этого места по подробнее. Если можно спримерами. В чем разница?
  11. вопрос по TWI

    В книге Евсеева написано, что линий SDA и SCL ( PC0 и PC1). Но вроде можно использовать и другие ноги. Киньте пример.
  12. Господа если бы вы были повнимательней, то заметили бы в init_devices() еще и timer0_init(); так вот он как раз по прерыванию работает, т.е. дело не в CLI(). Можно подробнее об этом и как устранить. Правда пишу в ICC, а шью через AVRstudio А не может быть это из-за фузов? Перепроверил и в AVRstudio , в прерывание в программе он действительно входит и правильно обрабатывает, а на железе НЕТ. Кстати проверяю и прошиваю через STK - 500
  13. Делаю проект часы на меге. Пока работал с помощью VMLAB и Протеус все было ок , часы тикали и т.д. Как только стал шить в железо оказалось, что не тикают(то есть не входят в прерывание). Проверил в АВР студии - действительно не входят. Вот код: //Инициализация таймера 2 на 1сек. void timer2_init(void) { TCCR2 = 0x00; ASSR = 0x08; TCNT2 = 0x80; OCR2 = 0x80; TCCR2 = 0x06; } //Обработка прерывания по таймеру 2 #pragma interrupt_handler timer2_ovf_isr:5 void timer2_ovf_isr(void) { rtc_service(); //Функция обработки времени TCNT2 = 0x80; } .......... void init_devices(void) { //stop errant interrupts until set up CLI(); //disable all interrupts port_init(); timer0_init(); timer2_init(); MCUCR = 0x00; GICR = 0x00; TIMSK = 0x41; //timer interrupt sources SEI(); //re-enable interrupts } ..................... void main(void) { init_devices(); LCD4_Init(); LCD4_Clear(); ........... while(1); } Может подскажете в чем ошибка.
  14. LCD и IAR

    Инициализация вроде так должна быть: задержка 15 мс RS = 0; задержка 5 мс DB4,DB5 = 1; задержка 5 мс DB4,DB5 = 1; задержка 5 мс DB5 = 1 задержка 5 мс DB5 = 1; DB7 = 1; задержка 5 мс DB4 - DB7 = 0; DB7,DB6 = 1 задержка 5 мс DB4 - DB7 = 0; DB5,DB6 = 1 задержка 5 мс RS = 1
  15. Режим Power Save

    Да нет это все я читал и представляю. Просто наверно не совсем правильно выразился. Вопрос наверно звучит так: Есть ли на С ICC команда для перевода в режим или все же придется втавить асемблер. У меня на асинхронном таймере реализованы часы, т.е. каждую секунду процессор входит в режим прерывания по ассинхронному таймеру, что является выходом из режима SLEEP, но мне это не надо, пока на INT0 не появится сигнал "1", как примерно он будет вести себя. Это больше адрессовано к тем, кто на практике уже применял этот режим.
  16. Режим Power Save

    Вообщем-то необходимо применить этот режим пониженного энергопотребления. Контролер при исчезновении питания по прерыванию с ноги(INT0) должен уснуть, при этом должен работать асинхронный таймер(реализованы часы). Вопрос в том как отписать на С (команда SLEEP) или еще чего надо? И особенно как выйти из него.
  17. Глупый вопрос

    Только наверное надо получить не шестнадцатеричное, а двоично-десятичное число (BCD формат). Функция преобразует числа в диапазоне от 0 до 99. unsigned char DEC_BCD(unsigned char val) { unsigned char t; t = val / 10; val = val - (t * 10); t <<= 4; t = t | val; return t; } Большое спасибо вот - это то что надо
  18. Глупый вопрос

    Подскажите как преобразовать десятичное число(скажем 50) в шестнадцатеричное, но не 0х32(как оно должно быть), в 0х50.
  19. Если проблема только в таймере, то советую инициализацию таймеров делать через ImageCraft, там это намного удобнее. Есть там такая примочка >Tools>Application builder Я не силен в Кодевижн, но зачем два lcd_init(16) ? и где само прерывание по ноге?
  20. Помогите плиз

    Все понял ошибку. Спасибо.
  21. Помогите плиз

    вот проект на ICC 6.31 time.rar
  22. Помогите плиз

    Спасибо, но ни то не другое не помогло. Сам понимаю, что где-то не стыковка в определении переменных, но уже просто заглючил.
  23. Помогите плиз

    Проблема с выводом переменной на LCD: есть функция: void LCD4_PutS(unsigned char *data) { unsigned char c = 0; while (data[c] != 0) { LCD4_WR4bits( data[c] >> 4); LCD4_WR4bits( data[c++]); DELAY; } } Пишув main LCD4_PutS("Ля-ля"); все ок задаю впеременную unsigned char Mes0[]={"Ля-ля"}; или unsigned char Mes0[]={"131,124,131"}; и пишу LCD4_PutS(Mes0); то выдвет ошибку multiple define
  24. VMLAB и ШИМ

    Дать ссылку где добыть Proteus можно.
×
×
  • Создать...