Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
PIC контроллеры. Программаторы и первый проект на PIC |
Программирование микроконтролеров,ремонт аудио/видео/бытовой техники,полезные устройства для дома,телефония, обсуждение статей журнала Радио |
|
Опции темы |
06.10.2009, 11:11 | #331 |
Форумец
|
|
14.10.2009, 12:00 | #334 | |
Форумец
|
Цитата:
Код:
TRISIO := 0; // все выводы на выход, кроме GP3, т.к. он всегда вход GPIO := 1; // лог.1 будет на GP0, остальные 0 GPIO := 2; // лог.1 будет на GP1, остальные 0 GPIO := 0x10; // лог.1 будет на GP4, остальные 0 GPIO := 0x30; // лог.1 будет на GP4 и GP5, остальные 0 Код:
var kk: byte; kk := 0; GPIO : = kk; // на всех выводах лог.0 kk.0 := 1; //бит 0 уст в лог.1 GPIO : = kk; //GP0 лог.1, остальные 0 Код:
GPIO.4 : = 1; //на GP4 установить лог.1 |
|
15.10.2009, 14:27 | #335 | |
Форумец
|
Новая версия MikroC PRO
1. Вышла новая версия mikroC PRO for PIC 2009 version 3.20 (уже не бета), скачать можно здесь http://www.mikroe.com/en/compilers/mikroc/pro/pic/, теперь этот компилятор может
Цитата:
|
|
16.10.2009, 21:56 | #336 |
Registered User
Сообщений: 391
Регистрация: 16.11.2008
Не в сети |
|
17.10.2009, 11:03 | #337 |
Форумец
Сообщений: 7
Регистрация: 17.10.2009
Не в сети |
Всем доброго времени суток! Случайно наткнулся на эту тему , как раз начал изучать си
компилятор микроси 3 бетка, не могли бы вы выложить пример обработчика прерываний для 18 пиков INT0 , INT1, TMR0 (16 БИТ) зарание спасибо Последний раз редактировалось _vka; 17.10.2009 в 12:08. |
17.10.2009, 19:41 | #339 | |
Форумец
|
Раньше пользователи при отладке могли использовать только симулятор встроенный в компилятор или же аппаратный отладчик на базе mikroICD от mikroE, продукты от mikroE никак не интегрировались в среду разработки MPLAB IDE и невозможна была симуляция в Proteus-е. По неоднократным просьбам пользователей команда mikroE включила в компилятор возможность генерации COFF файлов, используя которые теперь можно проводить отладку в среде MPLAB IDE ( как при помощи симулятора MPLAB SIM, так и при помощи программатора-отладчика ICD2 (ICD3)), а как известно в симуляторе MPLAB уже работают таймеры и т.д. Все это можно найти в help-файле.
Про возможность отладки в Протеусе говорить ничего не буду, об этом разработчики нигде не упоминают. А я Протеус не люблю. P.S. Давно Вас не видно было. Цитата:
Да и лучше скачайте 3.20, все багов поменьше. |
|
18.10.2009, 11:59 | #340 |
Форумец
Сообщений: 7
Регистрация: 17.10.2009
Не в сети |
Для начала пока и 3 версии хватит.
Вопрос как реализовать такой алгоритм, одна кнопка, при нажатии увеличивает регистор допустим count, до 255 после стоп . следующее нажатие будет уменьшать этот регистор до 0, да и значения регистра count заносить в TMR0 . НА асме просто, выставил флаг и вперед.................. а как на си флаги устанавливать пока не соображу. Зарание спасибо. P.S. А мне протеус нравится , удобная прога для быстрой проверки и предворительной отладки то что надо. Но это только мое мнение. Последний раз редактировалось _vka; 18.10.2009 в 12:59. |
18.10.2009, 16:12 | #341 |
Форумец
Сообщений: 7
Регистрация: 17.10.2009
Не в сети |
Код:
while(1) { Delay_us(20); for ( i = 0; i < 2; i++ ){ GPIO.F0 = 0; } if (fl_inc==0) // if (Button(&GPIO, 5, 1, 0)) { GPIO.F2 = 1; count++; } if (count==255) { GPIO.F2=0; fl_inc=1; } if (fl_inc==1){ count--; } if (count==253) { fl_inc=0; } } } |
18.10.2009, 20:46 | #342 | |
Форумец
|
Цитата:
А вот только понял, что Вы серьезно настроены по ходу программы что-то писать в TMR0, чего настоятельно не рекомендуется делать (мнение не только мое и я с этим согласен). А насчет флагов, то все также как в asm - флаги это же или переменные или биты в них, объявляете переменную-флаг (или с флагами) и снимаете флаг или выставляете. Или я не о том? |
|
19.10.2009, 16:09 | #343 |
Форумец
Сообщений: 7
Регистрация: 17.10.2009
Не в сети |
Код:
bit oldstate, fl_in; unsigned short count; //************************************ void interrupt() { char i; TMR0 = count; PORTA.F1 = 1; Delay_us(20); for ( i = 0; i < 10; i++ ){ // здесь можно изменить длительность импульса PORTA.F1 = 0; } INTCON.T0IF=0; } //********************************* void init(){ CMCON = 0x07; TRISA = 0x01; TRISB = 0; OPTION_REG = 0x06; // INTCON = 0xE0;//;разрешить прерывание TMR0 PORTA =0; PORTB =0; fl_in=0; count=126; oldstate=1; } //**************************************** void con() { if (fl_in==0){ count++; PORTB = count; } if (count==178){ fl_in=1; } if (fl_in==1){ count--; PORTB = count; } if (count==126){ fl_in=0; } } //***************************************** void main(){ unsigned short fl_inc,tmp; init(); while(1) { if (oldstate && Button(&PORTA, 0, 1, 0)) { // Detect one-to-zero transition CON(); // inc count DELAY_MS(100); } } } //************************************** Что эта прога делает? Меняет частоту импульсов от 60 - 100 гц, при нажатии кнопки частота увеличивается пока count не достиг значения 178 (100гц) после уменьшается пока count не достиг значения 126 (60 гц) все. ( Вы серьезно настроены по ходу программы что-то писать в TMR0, чего настоятельно не рекомендуется делать (мнение не только мое и я с этим согласен) ) Не понял, а почему нельзя? Обьясните пожалуйста чем черевата запись в TMR0 зарание спасибо. |
19.10.2009, 21:24 | #344 | |
Форумец
|
Цитата:
1. Задержки в прерывании - это минус, код обработчика прерывания должен быть коротким (опять не мое мнение). В обработчике все должно быть коротким и по делу (обычно принято так). 2. Если Вы решили работать с частотой, то временные отсчеты должны быть точными, а перезапись TMR0 этому никак не способствует. Для таких целей применяют модуль CCP и TMR2, еще у TMR2 есть замечательное свойство как прерывание по совпадению TMR2 и PR2. Если используется PIC18, то имеются два вектора прерываний, а с ними обоими уже вычисление точных отсчетов при Вашем подходе проблематично. 3. Про TMR0: - после записи в TMR0 в течении 2-х тактов счетчик не увеличивается. Если используется предделитель, то не особо проблема, а если без него, то надо как-то уже компенсировать; - и главное - при записи в TMR0 предделитель-то обнуляется, а предделитель мы считать, увы, не можем обычными средствами. И что в нем было на момент записи TMR0 нам уже не узнать. Поэтому если уж так надо, то надо добиваться того, чтобы TMR0 катился и катился без перезаписи. P.S. Я просто высказал свое мнение. Выбирать все равно Вам. |
|
05.11.2009, 07:22 | #346 |
Форумец
|
Кому интересно программирование на СИ для встраиваемых систем, то вот отличная статья-руководство от tester'a, представленная им на Microchip Masters-2009 http://wiki.pic24.ru/doku.php/osa/ar...without_errors. Думаю будет полезна при работе на Си с МК различных производителей.
|
05.11.2009, 09:50 | #347 |
Форумец
Сообщений: 523
Регистрация: 08.02.2007
Возраст: 49
Не в сети |
http://kazus.ru/forums/showthread.php?t=13043 - вот прикольная весч для начинающих
|
05.11.2009, 10:05 | #348 | |
Форумец
|
Цитата:
|
|
10.11.2009, 15:56 | #349 |
Форумец
Сообщений: 3
Регистрация: 10.11.2009
Возраст: 37
Не в сети |
здравствуйте, объясните пожалуйста задачу:
разработать программируемый формирователь широкоимпульсного модулируемого сигнала с использованием таймеров и счетчиков, все это надо сделать на микроконтроллере PIC18.Вот такой должен быть получен сигнал...Скажите что нужно для этой задачи? как понимаю без программатора не получится?Помогите пожалуйста, очень-очень надо!!! |
10.11.2009, 19:03 | #350 | |
Форумец
|
Цитата:
2. Очень-очень надо ..... из студентов? Курсовая? 3. Зачем такой извращенный ШИМ, почему бы не использовать стандартные алгоритмы ШИМ или манчестерского кодирования? 4. Если в железе надо, то программатор безусловно нужен. 5. Язык программирования? |
|
10.11.2009, 19:53 | #351 |
Форумец
Сообщений: 3
Регистрация: 10.11.2009
Возраст: 37
Не в сети |
petrd,
1. Да ШИМ, ошибся( 2. да, студент) 3. Не знаю задание такое дали( 4.В железе не обязательно, но хотелось бы и на железе сделать) 5.Язык программирование ассамблер наверное, но ближе VBA но на нем наверное не получится? Был бы рад если бы помогли хоть чем ни будь))) Хотябы схему действий если не трудно) |
11.11.2009, 07:01 | #352 | |
Форумец
|
Цитата:
|
|
12.11.2009, 11:54 | #355 | ||
Форумец
|
Цитата:
Или Вы надеетесь, что кто-то за Вас это сделает, а Вам галочку в зачетку и вперед пиво пить? Не прокатит. Есть два пути: 1. Сами свой мозг и руки напрягаете и говорите, что у Вас не получается, тогда Вам безвозмездно подсказывают и поправляют. 2. Признаетесь в нежелании этим заниматься и выдвигаете конструктивное коммерческое предложение, типа: Цитата:
|
||
13.11.2009, 08:09 | #356 |
Форумец
Сообщений: 9
Регистрация: 13.11.2009
Возраст: 56
Не в сети |
напишите коментарии в асм
напишите пожалуйста коментарии в асм файлах в каждой строчке на русском я расширение на txt поменял,
|
13.11.2009, 10:02 | #357 | |
Форумец
|
Цитата:
|
|
13.11.2009, 10:19 | #358 |
Форумец
Сообщений: 9
Регистрация: 13.11.2009
Возраст: 56
Не в сети |
придется асм изучать досканально и самому себе отвечать на свои вопросы
|
13.11.2009, 17:45 | #360 |
Инженер
|
|