Jump to content

artos5

Moderators
  • Content Count

    2978
  • Joined

  • Last visited

  • Days Won

    7

artos5 last won the day on January 22 2013

artos5 had the most liked content!

Community Reputation

308 Хороший

3 Followers

About artos5

  • Rank
    начинающий :)
  • Birthday 05/05/1985

Контакты

  • ICQ
    436015834
  • Skype
    artyomugr

Информация

  • Пол
    Мужчина
  • Город
    Украина, Ахтырка

Электроника

  • Стаж в электронике
    10-20 лет
  • Сфера радиоэлектроники
    Цифровая электроника, Силовая электроника, Аудио
  • Оборудование
    UNI-T UT71B, MASTECH MS8260E , LUKEY 852D, Паяльник 30W с тонким керамическим жалом, держатель плат с лупой.

Recent Profile Visitors

24255 profile views
  1. С этим разобрался. Теперь неполучается нормально запустить все 4 ШИМ . Какие то глюки происходят... 1) артефакты на RC3 CCP2. 2) Непонятная генерация на RC4. Этого не должно быть в принципе . 3) Артефакты на RC5 CCP1. Проверил также и в железе. Работает аналогично .. Фото прилагаю: Полный код:
  2. Мне нужно на 5, 7, 9 и 11 пине генерить меандр максимум 20000Гц . На 7 и 11 пине нужно двигать фазы относительно 5 и 9 пина и в зависимости от настроек. Вот не пойму , какой лучше режим применить? Скорее всего или ШИМ или программно через прерывание на 7 и 11м пине. А аппаратно на 9 и 5 пине. На этих выводах как раз имеются ССР1,2,3 и 4.
  3. А когда происходит сброс счётчика TMR1в режиме сравнения? Когда досчитает до 0xFFFF?
  4. Уважаемые! Подскажите , как работает таймер 1 в режиме сравнения? А то по даташиту не ясно... TMR1 считает до PR и сбрасывается?
  5. Мне кажется что проверка КС есть. И она скорее всего расположена по адресу: 0x0007FFF0 файла 0 Cтрока: EA 06 2C 30 E9 00 00 00 00 00 00 00 00 00 00 00 Но проверка файла показала , что основные алгоритмы проверки КС не дают совпадения с этими числами. Пробовал удалять последние 16 байт и заполнять 0 или FF и пробовал удалять 16 байт , полного совпадения нету Для файла заполненного FF последние 16 байт. Adler32 = 369203FD CRC32 = 75AF3D65 CRC64 = 35AB6E8C017EA3D3
  6. Контроллер древний. Могу выяснить какой . А то машина сейчас не рядом та. Вот что нашел в дампах памяти: ERROR MEMORY Вот кусок того кода: MODEW MODECOMPACTWRAPPER ERROR MEMORYY.M.D.CODEP это в аски2 виде представление. Похоже проверка есть В каком программаторе это показывается? У меня TL866
  7. Да , я заказал новые такие чипы памяти. Оригинальные трогать не буду. На счёт CRC я тоже думал. А как его тогда вычислить , где он проверяется? Если конечно есть проверка контрольной суммы . И какая обычно методика создания шрифтов ? Столбики = это байты или слова шрифта , который состоит из 5-7 таких байт/слов?
  8. Добрый вечер! Нужна помощь очень сильно. Слил дампы с маркиратора DiGi HI3600. На него сейчас уже ничего нет. Есть потребность русифицировать его клавиатуру , чтобы вводить кириллицу . Кто может подсказать где могут храниться символы и их шрифты? Символы я уже нашел. А с шрифтами пока засада. Кстати символы представлены так: По вертикали 10 бит. по горизонтали 6 бит. То есть шрифты 10х6. За реальную помощь с удовольствием отблагодарю на карту. К примеру 1000-4000руб./500-2000грн. за помощь / подсказку.Фото текста и найденных полезных участков чуть позже выложу. Дампы публикую сейчас: HI3600.rar Забыл написать. Микросхемы памяти стоят М27С4002 , 3шт. Довольно древние . Для издевательств заказал с Китая десяток .
  9. Добрался до ноута, вот мой тестовый код: #include <xc.h> #define _XTAL_FREQ 100000 // CONFIG2 #pragma config WRT = OFF // Flash Memory Self-Write Protection (Write protection off) #pragma config PLLEN = OFF // PLL Enable (4x PLL disabled) #pragma config STVREN = ON // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will cause a Reset) #pragma config BORV = LO // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.) #pragma config LVP = ON // Low-Voltage Programming Enable (Low-voltage programming enabled) void SetPWM (unsigned char nm, unsigned int dc) { switch(nm) { case 1: CCPR1L = dc>>2; CCP1CON &= 0xCF; CCP1CON |= 0x30&(dc<<4); break; case 2: CCPR2L = dc>>2; CCP2CON &= 0xCF; CCP2CON |= 0x30&(dc<<4); break; } } void main(void) { int fl=0, i=0; TRISC=0x01; TRISA=0x00; CCP1CON = 0x02; //PWM mode CCP CCP2CON = 0x02; CCP3CON = 0x02; CCP4CON = 0x02; OPTION_REG|=0x05; CCPTMRS0=0x81; //PR1=255; PR2=255; PR4=255; PR6=255; // T2CKPS1 = 1; //TIMER2 prescaler 1:16 // T2CKPS0 = 1; // T4CKPS1 = 1; //TIMER4 prescaler 1:16 // T4CKPS0 = 1; // T6CKPS1 = 1; //TIMER6 prescaler 1:16 // T6CKPS0 = 1; T2CON=0x0E; T4CON=0x0E; T6CON=0x0E; TMR2ON=1; TMR4ON=1; TMR6ON=1; while(1) { SetPWM(1, i); SetPWM(2, i+100); //SetPWM(2, 1023-i); //SetPWM(2, 1023-i); //if(fl==0) i++; //else i--; //if(i>1023) fl=1; //else if(i<=0) fl=0; i=1; } return; } Частоту специально понизил чтобы протеус меньше напрягался. В дальнейшем буду использовать частоту тактирования 20мГц от кварца.
  10. Все же я связываю проблемы с плохой оптимизацией протеус под микроконтроллеры PIC . Потому как поведение при отладке значительно отличается от описания в документации . И в придачу не работает два выхода . Хотя по конфигурации должны работать все 4 выхода CCPx
  11. Добрый день уважаемые! Кто решал подобную задачу? Нужно сформировать меандр на двух выходах и двигать фазу. Я это понимаю так: 1) Нужно настроить предделитель таймера . TxCKPS 2) нужно настроить срабатывание CCPx на инвертирование при совпадении. CCPxM=0b0010; 3) Нужно настроить период счётчика PRx и настроить срабатывание CCPx от какого таймера . CxTSEL 4) И нужно включить таймер . Пока что тестирую в протеус, так как в командировке. В отладке ведёт себя странно выходной сигнал. По идее если изменять регистр совпадения CCPR1L , то должна двигаться фаза . А по факту просто генерится меандр с частотой Fosc/4 , или Fosc/8. Кто в пиках хорошо разбирается , подскажите что делаю не так? К вечеру могу код инициализации скинуть (когда ноут включу).
  12. Можно я свои 5 копеек вставлю? Я бы сделал классический кольцевой буфер . По указателям отслеживал бы наполнение . И парсил бы потом его по заранее известным признакам . По таймауту можно ожидать полной загрузки в буфер сообщения . Если не догрузилось за n время , значит ошибка .
  13. Ну за сотку зелёных может Вам и помогут . И то , так , чисто для спортивного интереса ! Если интересно - пишите , помогу Вам.
×
×
  • Create New...