Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
PIC контроллеры. Программаторы и первый проект на PIC |
Программирование микроконтролеров,ремонт аудио/видео/бытовой техники,полезные устройства для дома,телефония, обсуждение статей журнала Радио |
|
Опции темы |
26.11.2009, 09:00 | #392 |
Форумец
Сообщений: 113
Регистрация: 03.09.2009
Не в сети |
Krivoy, на вскидку дешевых и не вспомню, я сейчас лишен интернета и подробно отвечу попозже. У Филлипса есть неплохая серия, но она 3-х вольтовая. По большому счету из-за ЕПРОМа и габаритов пришлось работать с АВРами, с TINY в основном, очень нравятся Меги, но таких сложных задач у меня пока нет.
|
27.11.2009, 18:20 | #397 |
Форумец
Сообщений: 82
Регистрация: 05.02.2008
Не в сети |
|
28.11.2009, 08:44 | #399 |
Форумец
Сообщений: 82
Регистрация: 05.02.2008
Не в сети |
Обратите внимание-у них разная разводка: 1 ряд и 2 ряда. Так что можно считать цоколевка всетаки одинаковая у разных производителей, но два типа.
Ладно бог с ней с цоколевкой, все равно если что то строишб надо иметь описание на то что у тебя в наличии. Вопрос вот такой ко все : кто нибудь запускал PIC12F675 с кварцами на 16 и выше МГц? Вчера не получилось у меня, а надо. Кучу кварцев и контроллеров попробовал. Может чего "не вкуриваю". |
28.11.2009, 18:53 | #400 |
Форумец
|
Да нет там ничего хитрого, кварц, два конденсатора 22-27 пф и в битах конфигурации установить тип HS и все должно работать.
|
28.11.2009, 20:25 | #401 |
Форумец
Сообщений: 82
Регистрация: 05.02.2008
Не в сети |
В том то и беда что должно но не работает. 12 мег включается, а выше нет. Может камни такие попались? Так я разные брал.. Какая то засада. Код 100% рабочий, конфигурация проверена.
|
28.11.2009, 21:07 | #402 |
Форумец
|
|
29.11.2009, 08:51 | #403 |
Форумец
Сообщений: 82
Регистрация: 05.02.2008
Не в сети |
5 вольт. Вот за напругу я и не подумал. Может попробовать понизить?
|
30.11.2009, 07:05 | #404 |
Форумец
|
|
30.11.2009, 10:35 | #405 |
Форумец
Сообщений: 82
Регистрация: 05.02.2008
Не в сети |
А 12МГц запускается же.
|
10.12.2009, 20:49 | #407 |
Форумец
Сообщений: 82
Регистрация: 05.02.2008
Не в сети |
Разобрался, блин. Не там искал. Просто когда берешь " заготовки" исходников надо все внимательно просматривать, они универсальные. Конкретно для PIC12F675: если используется внешний кварц, то команды записи константы для внутреннего генератора ОБЯЗАТЕЛЬНО надо исключить. В противном случае команда CALL 3FFFh возвращает на начало программы, т.е. крутится на месте.
Насчет кварца, то что сбило меня с толку: я своим лупиком почему то не вижу на ногах кварца на 16 ничего, а на 12 вижу синусоиду. Причем в Proteus на любом кварце ни чего не видно, хоть на 10, хоть на 16. |
11.12.2009, 06:59 | #408 | |
Форумец
|
Цитата:
|
|
12.12.2009, 21:14 | #409 | |
Форумец
Сообщений: 35
Регистрация: 30.06.2009
Возраст: 47
Не в сети |
Доброго времени. Давненько не был. Время появилось, продолжу пока мигать диодами.
Petrd подскажите , не хочет мигать на p12F629 на GP5 диод: Цитата:
|
|
12.12.2009, 21:41 | #410 |
Форумец
Сообщений: 82
Регистрация: 05.02.2008
Не в сети |
Программатор действительно "игрушечный" - JDM.
Рetrd спасибо за подсказку, попробую поменять константу. |
23.12.2009, 23:32 | #413 |
Форумец
Сообщений: 11
Регистрация: 08.08.2009
Возраст: 40
Не в сети |
Всем привет Я уже около года изучаю PIC но писал на асм и вот решыл перейти на С . Установил компилятор mikroC for PIC 8.2.0.0 попробывал написать простенькую програмку по опросу двух пинов портаА , все вроде работает но нетак ка надо
Вот собствено сие чудо void main(){ char oldstate = 0; TRISB = 0; // PORTB ВЫХОД PORTB = 0; // ОБНУЛИЛИ PORTВ ADCON1 = 6; // ВСЕ ВХОДЫ ЦЫФРОВЫЕ TRISA = 255; // PORTA ВХОД do { if (Button(&PORTA, 0, 1, 1)) oldstate = 1; if (oldstate && Button(&PORTA, 0, 1, 0)) { ++PORTB; oldstate = 0; } if (Button(&PORTA, 1, 1, 1)) oldstate = 1; if (oldstate && Button(&PORTA, 1, 1, 0)) { --PORTB; oldstate = 0; } } while(1); } проблема в том што при нажатии на кнопку допустим RA0 инкремент происходит постоянно , а нада штобы один раз как тут void main(){ char oldstate = 0; TRISB = 0; // PORTB ВЫХОД PORTB = 0; // ОБНУЛИЛИ PORTВ ADCON1 = 6; // ВСЕ ВХОДЫ ЦЫФРОВЫЕ TRISA = 255; // PORTA ВХОД do { if (Button(&PORTA, 0, 1, 1)) oldstate = 1; if (oldstate && Button(&PORTA, 0, 1, 0)) { ++PORTB; oldstate = 0; } } while(1); } И ещо может кто подскажет где взять самоучитель по етому компилятору |
24.12.2009, 07:35 | #414 | |
Форумец
|
Цитата:
2. Не используйте конструкции типа ++PORTB (почитайте в этом топике про PORT, LAT и TRIS). 3. Если недавно на Си, то качайте MikroC PRO. 4. Самоучителей по этому компилятору нет, есть сайт mikroe и русские help, учебником может быть любой классический учебник по ANSI C + знание особенностей компилятора и архитектуры PIC. |
|
24.12.2009, 11:15 | #416 |
Форумец
|
последнюю 3.20 http://www.mikroe.com/en/compilers/mikroc/pro/pic/ и если будет нужно, то патч к ней переводящий до 3.21 http://www.mikroe.com/forum/viewtopi...33d75bb70aac76
|
24.12.2009, 11:24 | #417 |
Форумец
Сообщений: 11
Регистрация: 08.08.2009
Возраст: 40
Не в сети |
http://www.mikroe.com/en/compilers/mikroc/pro/pic/
а,ето полноценная версия или тоже ести ограничения ? |
24.12.2009, 11:38 | #418 | |
Форумец
|
Цитата:
|
|
25.12.2009, 10:46 | #419 |
Форумец
Сообщений: 11
Регистрация: 08.08.2009
Возраст: 40
Не в сети |
Здраствуйте petrd . Немоглибы вы обяснить почему неработает пример из хелпа (запуск шым модуля )
Компилитса он без проблем но в протеусе тишына unsigned short current_duty, old_duty, current_duty1, old_duty1; void InitMain() { ANSEL = 0; // Configure AN pins as digital I/O ANSELH = 0; PORTA = 255; TRISA = 255; // configure PORTA pins as input PORTB = 0; // set PORTB to 0 TRISB = 0; // designate PORTB pins as output PORTC = 0; // set PORTC to 0 TRISC = 0; // designate PORTC pins as output PWM1_Init(5000); // Initialize PWM1 module at 5KHz PWM2_Init(5000); // Initialize PWM2 module at 5KHz } void main() { InitMain(); current_duty = 16; // initial value for current_duty current_duty1 = 16; // initial value for current_duty1 PWM1_Start(); // start PWM1 PWM2_Start(); // start PWM2 PWM1_Set_Duty(current_duty); // Set current duty for PWM1 PWM2_Set_Duty(current_duty1); // Set current duty for PWM2 while (1) { // endless loop if (RA0_bit) { // button on RA0 pressed Delay_ms(40); current_duty++; // increment current_duty PWM1_Set_Duty(current_duty); } if (RA1_bit) { // button on RA1 pressed Delay_ms(40); current_duty--; // decrement current_duty PWM1_Set_Duty(current_duty); } if (RA2_bit) { // button on RA2 pressed Delay_ms(40); current_duty1++; // increment current_duty1 PWM2_Set_Duty(current_duty1); } if (RA3_bit) { // button on RA3 pressed Delay_ms(40); current_duty1--; // decrement current_duty1 PWM2_Set_Duty(current_duty1); } Delay_ms(5); // slow down change pace a little } } На асм для такогоже пика все работает , а прога на С нехочет , в чом причина ? Я думал примеры в хелпе рабочие или там ещо нада чото дописывать ? Контролер 16F887 , компилятор microC PRO 3.2 И ещо если нетрудно подскажыте где microC PRO 3.2 выставлять биты конфигурацыи ? |
25.12.2009, 12:31 | #420 | |
Форумец
|
Цитата:
Этот пример написан для внешнего кварца на 8 МГц. А в Вашей модели для Протеуса внешний кварц стоит? Биты конфигурации: Project -> Edit Project. |
|