Программирование МК PIC

 

 

 

Помечено: 

Просмотр 12 сообщений - с 1 по 12 (из 12 всего)
  • Автор
    Сообщения
  • #14854
    Narod Stream
    Хранитель

    Здесь можно обсудить проблемы, связанные с программированием микроконтроллеров STM32.

    #15531
    metallhummer
    Участник

    Доброго времени суток.
    Очень интересно было смотреть Ваши уроки на ютюбе.
    Я давно хотел сделать приставку к своему аппарату точечной сварки для точного регулирования времени процесса.
    Есть задумка:
    контроллер pic16f630 (так как такой есть у меня), кнопки -3 штуки (больше, меньше, пуск), пара семисегментников для отображения секунд и десятых долей секунд (максимально до 3.0 секунд например), сила, подключенная к ноге ПИКа.

    Собственно вопрос:
    будет ли правильным использовать динамическую индикацию постоянно как “основную программу”,
    ждать прерывания по изменению уровня на кнопках, и иметь 3 обработчика прерываний (для больше, меньше и пуска),
    если пуск, то в обработчике прерывания выставлять на ногу 1, формировать задержку при помощи Delay и сбрасывать ногу в 0?

    Заранее благодарен

    #15575
    Narod Stream
    Хранитель

    metallhummer
    В обработчиках прерываний применять задержки нежелательно, это подвесит контроллер. Обработчик прерываний должен среагировать на команду и установить какие-то флаги, на которые будет уже реагировать основная программа.
    Обработчик прерываний – это такая часть программы, которая должна выполняться максимально быстро, иначе мы не дадим работать во время долгой обработки основному коду, а ещё того хуже, не дадим обработаться остальным прерываниям.

    #16250
    Sergey 702
    Участник

    Подскажите новичку, есть PIC16F73, нужно подать ШИМ на порт RC5, пишу код в MPLAB X IDE, не даёт задействовать этот порт, ошибка, разрешает только порты RB.

    https://studbooks.net/imag_/15/219692/image018.jpg

    https://www.alldatasheet.com/datasheet-pdf/pdf/74970/MICROCHIP/PIC16F73.html

    #16251
    ritmlive
    Участник

    Sergey 702
    Дело в том, что аппаратный шим нельзя подать на вывод RC5, т.к. модуль ШИМ CCP подключен 1 каналом к RC2 а вторым каналом к RC1 – это хорошо видно в дотащите. Если очень необходимо на RC5 ШИМ можно получить программно, но в фоне он работать не будет.

    #16384
    P32L
    Участник

    скрин

    выходит такая ошибка при компиляции.Не могу понять,что не так.

    #16415
    Joker62
    Участник

    Здравствуйте!
    Скажите пожалуйста, каким версией используетесь Proteus, где описывается на видеоуроках?
    Какой лучше выбрать версию Porteus для создания симуляции работы контроллера?

    В инете есть доступные версии 8.6 и 8.7.

    #17275
    andreydv
    Участник

    Здравствуйте!
    Хочу поинтересоваться, есть ли какая-либо информация, связанная (напрямую или косвенно) с автоматизацией процесса для БПА (билетопечатающий автомат). Заранее, спасибо

    #19236
    NoRtiK3544
    Участник

    Здравствуйте, подскажите новичку.
    Есть пик 628а. Помогите написать кусок программы для компаратора, чтобы он сравнивал два напряжения. И как только оно стало равно или больше 11.5 В то мк подал сигнал
    Заранее спасибо

    #22046
    EgorU
    Участник

    Зджравствуйте, имеется контроллер pic18f25k22
    На нём запущенО 2а Uart-а
    RX1 RC7 TX1 RC6
    RX2 RB7 TX2 RB6

    Выставленны следующие натройки
    OSCCON=0b00110000; //System clock
    OSCCON2=0b00000000; //System clock
    INTSRC=1; //Internal Oscillator Low-Frequency Source Select bit1 = 31.25 kHz

    //UART1
    ANSC7=0;
    ANSC6=0;
    TRISC6=1;
    TRISC7=1;
    PORTCbits.RC6=1;
    SPEN1=0;
    CREN1=0;
    TXSTA1bits.SYNC=0;
    TXSTA1bits.BRGH=0;
    RCSTA1bits.SPEN=1;
    BAUDCON1bits.BRG16=1;
    BAUDCON1bits.CKTXP=0;
    BAUDCON1bits.DTRXP=0;
    SPBRGH1=0x00;
    SPBRG1=0x3F;
    SPEN1=1;
    TXEN1=1;
    CREN1=1;

    //UART2
    ANSC7=0;
    ANSC6=0;
    TRISB6 = 0;
    TRISB7 = 0;
    SPBRGH=0;
    SPBRG=0x3F;
    PORTBbits.RB6 = 1;
    CREN2=0;
    TXSTA2bits.SYNC=0;
    TXSTA2bits.BRGH=0;
    RCSTA2bits.SPEN=1;
    BAUDCON2bits.BRG16=1;
    BAUDCON2bits.CKTXP=0;
    BAUDCON2bits.DTRXP=0;
    TXSTA2bits.TX9 = 0;
    TXSTA2bits.TXEN = 1;
    TXSTA2bits.TX9D = 0;
    CREN2=1;

    Всё вроде как одинаково, но в реальности скорости передачи разные… смотрю осцилографом
    Необходимо настроить на скорость 9600

    Подскажите пожалуйста

    #22129
    Виктор
    Участник

    Здравствуйте.
    Хотелось бы увидеть урок о цифровых линейках.
    Точнее о внешнем табло на 7-ми сегментных индикаторах к цифровым линейкам.
    Желательно на PIC попроще.
    Может быть PIC16F84.
    Спасибо.
    Огромное спасибо за ваши уроки.

    #22176
    Tomas_13
    Участник

    Доброго времени суток. мучаюсь с таймером никак не могу сделать таймер при подаче на ногу импульсов таймер должен прибавлять +20 на дисплей при нажатии кнопки старт должен идти отсчет времени в минус пли когда кнопка старт нажата и время уходит должен включатся фонарь как таймер доходит до нуля фонарь выключается дисплей используется семи сегментный 4 разряда. при нажатие кнопки старт время пошло повторное нажатие время остановилось. очень нужна помощь профессионалов 100 едениц на таймере равно 5 минут. можно просто саму программу в фловкоде я только начинаю осваивать программирование во фловкоде и протеус.

  • Автор
    Сообщения
  • #14854

    Narod Stream
    Хранитель
    • Оффлайн

    Здесь можно обсудить проблемы, связанные с программированием микроконтроллеров STM32.

    #15531

    metallhummer
    Участник
    • Оффлайн

    Доброго времени суток.
    Очень интересно было смотреть Ваши уроки на ютюбе.
    Я давно хотел сделать приставку к своему аппарату точечной сварки для точного регулирования времени процесса.
    Есть задумка:
    контроллер pic16f630 (так как такой есть у меня), кнопки -3 штуки (больше, меньше, пуск), пара семисегментников для отображения секунд и десятых долей секунд (максимально до 3.0 секунд например), сила, подключенная к ноге ПИКа.

    Собственно вопрос:
    будет ли правильным использовать динамическую индикацию постоянно как “основную программу”,
    ждать прерывания по изменению уровня на кнопках, и иметь 3 обработчика прерываний (для больше, меньше и пуска),
    если пуск, то в обработчике прерывания выставлять на ногу 1, формировать задержку при помощи Delay и сбрасывать ногу в 0?

    Заранее благодарен

    #15575

    Narod Stream
    Хранитель
    • Оффлайн

    metallhummer
    В обработчиках прерываний применять задержки нежелательно, это подвесит контроллер. Обработчик прерываний должен среагировать на команду и установить какие-то флаги, на которые будет уже реагировать основная программа.
    Обработчик прерываний – это такая часть программы, которая должна выполняться максимально быстро, иначе мы не дадим работать во время долгой обработки основному коду, а ещё того хуже, не дадим обработаться остальным прерываниям.

    #16250

    Sergey 702
    Участник
    • Оффлайн

    Подскажите новичку, есть PIC16F73, нужно подать ШИМ на порт RC5, пишу код в MPLAB X IDE, не даёт задействовать этот порт, ошибка, разрешает только порты RB.

    https://studbooks.net/imag_/15/219692/image018.jpg

    https://www.alldatasheet.com/datasheet-pdf/pdf/74970/MICROCHIP/PIC16F73.html

    #16251

    ritmlive
    Участник
    • Оффлайн

    Sergey 702
    Дело в том, что аппаратный шим нельзя подать на вывод RC5, т.к. модуль ШИМ CCP подключен 1 каналом к RC2 а вторым каналом к RC1 – это хорошо видно в дотащите. Если очень необходимо на RC5 ШИМ можно получить программно, но в фоне он работать не будет.

    #16384

    P32L
    Участник
    • Оффлайн

    скрин

    выходит такая ошибка при компиляции.Не могу понять,что не так.

    #16415

    Joker62
    Участник
    • Оффлайн

    Здравствуйте!
    Скажите пожалуйста, каким версией используетесь Proteus, где описывается на видеоуроках?
    Какой лучше выбрать версию Porteus для создания симуляции работы контроллера?

    В инете есть доступные версии 8.6 и 8.7.

    #17275

    andreydv
    Участник
    • Оффлайн

    Здравствуйте!
    Хочу поинтересоваться, есть ли какая-либо информация, связанная (напрямую или косвенно) с автоматизацией процесса для БПА (билетопечатающий автомат). Заранее, спасибо

    #19236

    NoRtiK3544
    Участник
    • Оффлайн

    Здравствуйте, подскажите новичку.
    Есть пик 628а. Помогите написать кусок программы для компаратора, чтобы он сравнивал два напряжения. И как только оно стало равно или больше 11.5 В то мк подал сигнал
    Заранее спасибо

    #22046

    EgorU
    Участник
    • Оффлайн

    Зджравствуйте, имеется контроллер pic18f25k22
    На нём запущенО 2а Uart-а
    RX1 RC7 TX1 RC6
    RX2 RB7 TX2 RB6

    Выставленны следующие натройки
    OSCCON=0b00110000; //System clock
    OSCCON2=0b00000000; //System clock
    INTSRC=1; //Internal Oscillator Low-Frequency Source Select bit1 = 31.25 kHz

    //UART1
    ANSC7=0;
    ANSC6=0;
    TRISC6=1;
    TRISC7=1;
    PORTCbits.RC6=1;
    SPEN1=0;
    CREN1=0;
    TXSTA1bits.SYNC=0;
    TXSTA1bits.BRGH=0;
    RCSTA1bits.SPEN=1;
    BAUDCON1bits.BRG16=1;
    BAUDCON1bits.CKTXP=0;
    BAUDCON1bits.DTRXP=0;
    SPBRGH1=0x00;
    SPBRG1=0x3F;
    SPEN1=1;
    TXEN1=1;
    CREN1=1;

    //UART2
    ANSC7=0;
    ANSC6=0;
    TRISB6 = 0;
    TRISB7 = 0;
    SPBRGH=0;
    SPBRG=0x3F;
    PORTBbits.RB6 = 1;
    CREN2=0;
    TXSTA2bits.SYNC=0;
    TXSTA2bits.BRGH=0;
    RCSTA2bits.SPEN=1;
    BAUDCON2bits.BRG16=1;
    BAUDCON2bits.CKTXP=0;
    BAUDCON2bits.DTRXP=0;
    TXSTA2bits.TX9 = 0;
    TXSTA2bits.TXEN = 1;
    TXSTA2bits.TX9D = 0;
    CREN2=1;

    Всё вроде как одинаково, но в реальности скорости передачи разные… смотрю осцилографом
    Необходимо настроить на скорость 9600

    Подскажите пожалуйста

    #22129

    Виктор
    Участник
    • Оффлайн

    Здравствуйте.
    Хотелось бы увидеть урок о цифровых линейках.
    Точнее о внешнем табло на 7-ми сегментных индикаторах к цифровым линейкам.
    Желательно на PIC попроще.
    Может быть PIC16F84.
    Спасибо.
    Огромное спасибо за ваши уроки.

    #22176

    Tomas_13
    Участник
    • Оффлайн

    Доброго времени суток. мучаюсь с таймером никак не могу сделать таймер при подаче на ногу импульсов таймер должен прибавлять +20 на дисплей при нажатии кнопки старт должен идти отсчет времени в минус пли когда кнопка старт нажата и время уходит должен включатся фонарь как таймер доходит до нуля фонарь выключается дисплей используется семи сегментный 4 разряда. при нажатие кнопки старт время пошло повторное нажатие время остановилось. очень нужна помощь профессионалов 100 едениц на таймере равно 5 минут. можно просто саму программу в фловкоде я только начинаю осваивать программирование во фловкоде и протеус.

Просмотр 12 сообщений - с 1 по 12 (из 12 всего)
  • Для ответа в этой теме необходимо авторизоваться.