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

aerobus

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

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Частый гость
    Частый гость

Посетители профиля

953 просмотра профиля
  1. Ткните носом где эти биты выставляются в МПЛАБ Х И где устанавливается ? // - set linker heap size to 70 Bytes for project // - set compiler optimization to O3 (needs license for dsPICC)
  2. Еще просьба к сообществу. Кто нить может помочь. Перекомпилить проект с этими требованиями и кинуть HEX Может у меня кривые ручки или кривой МПЛАБ. Ну или не той версии... Требования : // Compile using: mplab ide and dsPICC: // - set linker heap size to 70 Bytes for project // - set compiler optimization to O3 (needs license for dsPICC) // There will be some warnings when compiling. You can ignore them. // // Use the following device configuration for the dsPIC4012: // Primary Osc. Mode: FRC w/ PLL 16x // Oscillator source: Primary Osc. // Clk. Switching and Monitor: Sw disabled, Mon disabled // WDT Prescaler B (not used): 1:16 // WDT Prescaler A: (not used): 1:512 // Watchdog Timer: disabled // POR Timer Value: 64ms // Brown out voltage: 4.2V // PBOR Enable: enabled // Low-side PWM output polarity: Active high // High-side PWM output polarity: Active high // PWM-Pin: Control with PORT/TRIS regs // Master clear enable: enabled // Gen. code segment write prot.: disabled // Gen. Segment code protection: disabled // Com. channel select: Use PGC/EMUC and PGD/EMUD
  3. // Initialization of timer 1 as a periodic interrupt // each 0.1 ms (10khz) void setup_TMR1(void) { printf("\r\n\555555555555\r\n"); T1CON = 0x0020; // internal Tcy/64 clock TMR1 = 0; #define PR1PRESET (FCY/64/10000) PR1 = PR1PRESET; // 0.1 ms interrupts (100us) T1CONbits.TON = 1; // turn on timer 1 _T1IP = 6; } Вот вставил в таймер строчку принт... И натыкал в начале строк \r\n\ Вот что получаю при коннектк 23:24:52 23:24:52 23:24:52 m555555555 23:24:52 23:24:52 23:24:52 23:24:52 servo-enabled~~~~ 23:24:52 23:24:52 > 23:24:52 23:24:52 m555555555 23:24:52 23:24:52 23:24:52 23:24:52 servo-enabled~~~~ 23:24:52 23:24:53 > 23:24:53 23:24:53 m555555555 23:24:53 23:24:53 23:24:53 23:24:53 servo-enabled~~~~ 23:24:53 23:24:53 > 23:24:53 23:24:53 m555555555 23:24:53 23:24:53 23:24:53 23:24:53 m555555555 23:24:53 23:24:53 23:24:53 23:24:53 servo-enabled~~~~ 23:24:53 23:24:53 > 23:24:53 23:24:53 DC Mode 23:24:53 23:24:53 23:24:53 23:24:53 Powerup 23:24:53 23:24:53 i/o,uart,timer OK 23:24:53 23:24:53 23:24:53 23:24:53 m555555555 23:24:53 23:24:53 23:24:53 23:24:53 servo-enabled~~~~ 23:24:53 23:24:54 > 23:24:54 23:24:54 m555555555 23:24:54 23:24:54 23:24:54 23:24:54 m555555555 23:24:54 23:24:54 23:24:54 23:24:54 m555555555 23:24:54 23:24:54 23:24:54 23:24:54 servo-enabled~~~~ 23:24:54 23:24:55 > 23:24:55 23:24:55 m555555555 23:24:55 23:24:55 23:24:55 23:24:55 servo-enabled~~~~ 23:24:55 23:24:55 > 23:24:55 23:24:55 m555555555 23:24:55 23:24:55 23:24:55 23:24:55 servo-enabled~~~~ 23:24:55 23:24:56 > 23:24:56 23:24:56 DC Mode 23:24:56 23:24:56 23:24:56 23:24:56 Powerup 23:24:56 23:24:56 i/o,uart,timer OK 23:24:56 23:24:56 23:24:56 23:24:56 m555555555 23:24:56 23:24:56 23:24:56 23:24:56 m555555555 23:24:56 23:24:56 23:24:56 23:24:56 servo-enabled~~~~ 23:24:56 23:24:56 ю 23:24:56 23:24:56 m555555555 23:24:56 23:24:56 23:24:56 23:24:56 servo-enabled~~~~ 23:24:56 23:24:57 > 23:24:57 23:24:57 m555555555 23:24:57 23:24:57 23:24:57 23:24:57 servo-enabled~~~~ 23:24:57 23:24:57 > 23:24:57 23:24:57 DC Mode 23:24:57 23:24:57 23:24:57 23:24:57 Powerup 23:24:57 23:24:57 i/o,uart,timer OK 23:24:57 23:24:57 23:24:57 23:24:57 m555555555 23:24:57 23:24:57 23:24:57 23:24:57 servo-enabled~~~~ 23:24:57 23:24:58 > 23:24:58 23:24:58 DC Mode 23:24:58 23:24:58 23:24:58 23:24:58 Powerup 23:24:58 23:24:58 i/o,uart,timer OK 23:24:58 23:24:58 23:24:58 23:24:58 m555555555 23:24:58 23:24:58 23:24:58 23:24:58 servo-enabled~~~~ 23:24:58 23:24:58 > 23:24:58 23:24:58 DC Mode 23:24:58 23:24:58 23:24:58 23:24:58 Powerup 23:24:58 23:24:58 i/o,uart,timer OK 23:24:58 23:24:59 23:24:59 23:24:59 m555555555 23:24:59 23:24:59 23:24:59 23:24:59 servo-enabled~~~~ 23:24:59 Гдето перезапускается таймер?
  4. Дело в том, что тут без дробных значей не обойтись. ПИД может быть и в тысячных, а то и десятитысячных единицах.... (((
  5. Может и не прав. Ну Помимо этого сообщения МПЛАБа ПИККИТ тоже не признает его. Ну и вот таким образом проц подключаю к программатору. В такой обвязке. Внешнего питания не подаю.
  6. И что может таким образом превратить процик в кирпич? Уже 4-й кирпич... (((
  7. Ну я писал, что не силен в программинге МК. Немного имею представление. Могу только повторить. Вот начал эксперименты. взял голій процик подпаял питание, землю, подтянул три ноги к питанию, которіе узнают тип движка, ну и Tx RX PGd PGC... Ставлю в разные части кода printf и смотрю куда попадает.... Обнаружилась другая бяка.... Уже третий процик после десятка перепрошивок уходит в кирпич ((( Вот такая картинка Чего это они? Пользуюсь ПИККИТ2 Лайт. Питание на проц не подавал, только от программатора....((( Вот так припаяно Спасибо огромное что уделили время. Мда.... Печально... Ну навроде как этот код делался на базе аналогичного серводрайвера, которыые у меня успешно эксплуатируются уже много лет. различие у них в том, что предыдущий драйвер использовал управление движком по протоколу плюс/минус 10 вольт и только коллекторники и требовал стороннего усилителя (т.е. силовая часть была от стороннего производителя американские АМС). Раньше у китайсав я купил их не дорого, ныне же они только на ИБЭе и цены далеко не гуманные плюс доставка, посему искал другое решение. А текущий драйвер имеет силовуху на борту и управляется по степ/дир. Я сравнивал тексты. Отличаются тем что текущий умеет крутить бесколлекторники. Головная прога отличается. Ну а код по УАРТУ по сути один в один содран. Еще раз спасибо за потраченное время.
  8. Ну дык как раз шьеться, программатор говорит, что все ок. И после отключения, подключения по новой, читает прошиву, сравнивает... Все ок. Программатор то шьет по ISP, а обращение из проги идет по UART. Вот там повидимому висячие ноги и мешают... А за ответ спасибо. :) Ну уже вопрос закрыт. Все работает - откликается. :)
  9. Огромное спасибо за наводку! :) Вопрос решился. Очень просто решился. На плату приходит питание 5,+12,-12 Когда я подавал только 5, то программатор все прекрасно шил и читал из камня, однако прошива не работала. Когда подал все питания, прошилась с таким же успехом, только стала работать. Чтот я так и не понял. Каким боком 12 вольт к процу. По сути они питают операционный усилитель.
  10. Доброго всем! Может кто нибудь сталкивался с заливкой бутлоадера в dsPic30F4012? Программатор ChipProg-ISP. Вроде как заливается. Все путем. Затем с помощью dsPIC bootloader from Ingenia (ingeniadsPICbootloader.exe) через переходку ЮСБ-СОМ (на FT232RL или СР2103) пытаюсь залить прошиву. камень не определяется при этом осцил показывает опрос на ноге проца от переходки. А ответа не идет с Тх. Попробовал залить прошиву прям программатором, Залилась вроде как нормально. Далее есть программулина под форточками, которая прописывает в камень ряд параметров. Общается аналогично по UART картинка аналогичная. Может надо каието параметры микрухи указать в Фитоновской оболочке для данного камня. Вроде как народ эту операцию с этой платой и с этим переходником выполнял без проблем. Только программатор ПикКит2 пользовали. Может тут какие то настройки ChipProga надо "пошевилить"?
  11. ATTINY2313 и ЖКИ 16х2

    Пасиб. :rolleyes: Я именно с этого примера и начинал. Тут как раз и прикручена нога RW к библиотеке Т.е. работа по готовности. Ну да в прочем ежели отпаять таки ногу от "земли", то вроде как все должно работать.
  12. ATTINY2313 и ЖКИ 16х2

    Угу. Ежели б не шилд, то и резюки б с кнопок выпаял, а оне(резюки) под ЖКИ. И нога к земле прикручена...
  13. ATTINY2313 и ЖКИ 16х2

    Не въехал. :( Что под чем скрыто и куды его убрать? Ну вот такая схемка пока. Т.е. ЖКИ сидит на порту В Кнопки на D Ежели забрать компаратор, то пины освободятся на D а управление экраном надо буит осуществлять из двух портов. RS, RW, E повесить на порт D а данные гнать через порт B. Может конечно єто все не сильно грамотно, с точки зрения профи, ну да я и не претендую. Это так, для дома для себя изредка заглядываю в МК. :laughing: Ну а сие кусок говнокода который это должон оживлять. #include <tiny2313.h> #include <string.h> #include <delay.h> #include <lcd.h> #asm .equ __lcd_port=0x18 ;PORTB //Подключаем дисплей к порту B #endasm int c; unsigned char numdigchar(int x) { unsigned char temp; if ((x>=1000)||(x<=-1000)) return 1; if (x<0) { lcd_putchar('-'); x=-x; } temp=x/1000; //вычисляем тысячи lcd_putchar(0x30+temp); //выводим на ЖКИ x=x-temp*1000; //вычитаем тысячи temp=x/100; //вычисляем сотни lcd_putchar(0x30+temp); //выводим x=x-temp*100; //вычитаем сотни temp=x/10; //вычисляем десятки lcd_putchar(0x30+temp); //выводим x=x-temp*10; //вычитаем десятки temp=x/1; //вычисляем единицы lcd_putchar(0x30+temp); //выводим x=x-temp; //вычитаем единицы return 0; } //Главная функция программы void main(void) { CLKPR=0x80; CLKPR=0x00; #ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif PORTB=0x00; DDRB=0xDF; PORTD=0x00; DDRD=0x20; TCNT0=0xFF; TCCR0A=0xF3; TCCR0B=0x01; OCR0B=0x05; OCR0A=0xF0; //Инициализируем дисплей lcd_init(16); #asm("cli") c=5; lcd_clear(); //функция очистки дисплея while(1){ delay_ms(1000); //задержка 1 секунда if (PIND.6==0) { if (OCR0A<0xFF) OCR0A++; } if (PIND.2==0) { if (OCR0A>0) OCR0A--; } if (PIND.4==0) { if (OCR0B<0xFF) OCR0B++; } if (PIND.1==0) { if (OCR0B>0) OCR0B--; } lcd_gotoxy(7,0); numdigchar(OCR0A); lcd_gotoxy(7,1); numdigchar(OCR0B); } } Т.е. Гдето так. Приношу извинения, не умею код засовывать в отдельный блок. Может подскажете как?
  14. ATTINY2313 и ЖКИ 16х2

    Спасибо! Токо 8-битный забирает порты, мне тогда не хватает. :( 2 ILYAUL Ежели пин RW ставлю в землю, то на пине Enable идут осциляции и ничо не запускается. Тут еще проблемка вылезла. Кнопочки на шилде запаяны под разбор АЦП. А у Тиньки его нету. Вот думаю компаратор присобачить под АЦП, только тогда прийдется растягивать управление ЖКИ на два порта, потому как нужны два канала ШИМ от таймера 0 и две ноги компаратора из порта В прийдется забрать под АЦП. В общем буду колхозить свои процедуры инициализации и отображения. :(
×
×
  • Создать...