Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
![]() |
||
![]() |
Программирование микроконтролеров,ремонт аудио/видео/бытовой техники,полезные устройства для дома,телефония, обсуждение статей журнала Радио |
![]() |
|
Опции темы |
![]() |
#392 |
Форумец
Сообщений: 113
Регистрация: 03.09.2009
![]() |
Krivoy, на вскидку дешевых и не вспомню, я сейчас лишен интернета и подробно отвечу попозже. У Филлипса есть неплохая серия, но она 3-х вольтовая. По большому счету из-за ЕПРОМа и габаритов пришлось работать с АВРами, с TINY в основном, очень нравятся Меги, но таких сложных задач у меня пока нет.
|
![]() |
![]() |
![]() |
#397 |
Форумец
Сообщений: 82
Регистрация: 05.02.2008
![]() |
|
![]() |
![]() |
![]() |
#399 |
Форумец
Сообщений: 82
Регистрация: 05.02.2008
![]() |
Обратите внимание-у них разная разводка: 1 ряд и 2 ряда. Так что можно считать цоколевка всетаки одинаковая у разных производителей, но два типа.
Ладно бог с ней с цоколевкой, все равно если что то строишб надо иметь описание на то что у тебя в наличии. Вопрос вот такой ко все : кто нибудь запускал PIC12F675 с кварцами на 16 и выше МГц? Вчера не получилось у меня, а надо. Кучу кварцев и контроллеров попробовал. Может чего "не вкуриваю". |
![]() |
![]() |
![]() |
#400 |
Форумец
|
Да нет там ничего хитрого, кварц, два конденсатора 22-27 пф и в битах конфигурации установить тип HS и все должно работать.
|
![]() |
![]() |
![]() |
#401 |
Форумец
Сообщений: 82
Регистрация: 05.02.2008
![]() |
В том то и беда что должно но не работает. 12 мег включается, а выше нет. Может камни такие попались? Так я разные брал.. Какая то засада. Код 100% рабочий, конфигурация проверена.
|
![]() |
![]() |
![]() |
#402 |
Форумец
|
|
![]() |
![]() |
![]() |
#403 |
Форумец
Сообщений: 82
Регистрация: 05.02.2008
![]() |
5 вольт. Вот за напругу я и не подумал. Может попробовать понизить?
|
![]() |
![]() |
![]() |
#404 |
Форумец
|
|
![]() |
![]() |
![]() |
#405 |
Форумец
Сообщений: 82
Регистрация: 05.02.2008
![]() |
А 12МГц запускается же.
|
![]() |
![]() |
![]() |
#407 |
Форумец
Сообщений: 82
Регистрация: 05.02.2008
![]() |
Разобрался, блин. Не там искал. Просто когда берешь " заготовки" исходников надо все внимательно просматривать, они универсальные. Конкретно для PIC12F675: если используется внешний кварц, то команды записи константы для внутреннего генератора ОБЯЗАТЕЛЬНО надо исключить. В противном случае команда CALL 3FFFh возвращает на начало программы, т.е. крутится на месте.
Насчет кварца, то что сбило меня с толку: я своим лупиком почему то не вижу на ногах кварца на 16 ничего, а на 12 вижу синусоиду. Причем в Proteus на любом кварце ни чего не видно, хоть на 10, хоть на 16. |
![]() |
![]() |
![]() |
#408 | |
Форумец
|
Цитата:
|
|
![]() |
![]() |
![]() |
#409 | |
Форумец
Сообщений: 35
Регистрация: 30.06.2009
Возраст: 47
![]() |
Доброго времени. Давненько не был. Время появилось, продолжу пока мигать диодами.
Petrd подскажите , не хочет мигать на p12F629 на GP5 диод: Цитата:
|
|
![]() |
![]() |
![]() |
#410 |
Форумец
Сообщений: 82
Регистрация: 05.02.2008
![]() |
Программатор действительно "игрушечный" - JDM.
Рetrd спасибо за подсказку, попробую поменять константу. ![]() |
![]() |
![]() |
![]() |
#413 |
Форумец
Сообщений: 11
Регистрация: 08.08.2009
Возраст: 39
![]() |
Всем привет
![]() Вот собствено сие чудо ![]() 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); } И ещо может кто подскажет где взять самоучитель по етому компилятору |
![]() |
![]() |
![]() |
#414 | |
Форумец
|
Цитата:
2. Не используйте конструкции типа ++PORTB (почитайте в этом топике про PORT, LAT и TRIS). 3. Если недавно на Си, то качайте MikroC PRO. 4. Самоучителей по этому компилятору нет, есть сайт mikroe и русские help, учебником может быть любой классический учебник по ANSI C + знание особенностей компилятора и архитектуры PIC. |
|
![]() |
![]() |
![]() |
#416 |
Форумец
|
последнюю 3.20 http://www.mikroe.com/en/compilers/mikroc/pro/pic/ и если будет нужно, то патч к ней переводящий до 3.21 http://www.mikroe.com/forum/viewtopi...33d75bb70aac76
|
![]() |
![]() |
![]() |
#417 |
Форумец
Сообщений: 11
Регистрация: 08.08.2009
Возраст: 39
![]() |
http://www.mikroe.com/en/compilers/mikroc/pro/pic/
а,ето полноценная версия или тоже ести ограничения ? |
![]() |
![]() |
![]() |
#418 | |
Форумец
|
Цитата:
|
|
![]() |
![]() |
![]() |
#419 |
Форумец
Сообщений: 11
Регистрация: 08.08.2009
Возраст: 39
![]() |
Здраствуйте 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 выставлять биты конфигурацыи ? |
![]() |
![]() |
![]() |
#420 | |
Форумец
|
Цитата:
Этот пример написан для внешнего кварца на 8 МГц. А в Вашей модели для Протеуса внешний кварц стоит? Биты конфигурации: Project -> Edit Project. |
|
![]() |
![]() |