Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Микроконтроллер STM8s отладка кода в IAR в режиме Simulator https://www.cyberforum.ru/ microcontrollers/ thread2023191.html
Уважаемые, объясните, почему при отладке кода в режиме Simulator счетчик таймера не изменяется? Какие существенные недостатки, если они имеются, у данного режима? Использую std peripheral library для smt8s Счетчик TIM1 инициализирую стандартно TIM1_TimeBaseInit(15999,TIM1_COUNTERMODE_UP,65535,0); TIM1->CR1 &= (uint8_t)(~TIM1_CR1_OPM);//На всякий случай TIM1_Cmd(ENABLE);
Микроконтроллер Идея стартапа - получится ли сделать такое устройство?
Здравствуйте1 Давно заразился идеей создать устройство для коррекции осанки (в дальнейшем и не только) основываясь на работах товарища Павлова. Т.е. электрическим током (пока без кусочков сахара). Принцип действия прост: в устройство встроен гироскоп, оно надевается на тело в тех местах, где можно судить о положении позвоночника (верхняя или нижняя часть спины), далее калибруется (с...
Микроконтроллер Какие книги, статьи и материалы необходимо изучить для программирования микроконтроллеров https://www.cyberforum.ru/ microcontrollers/ thread2019191.html
Нужна подсказка, начал изучать Visual Studio 2013 C++(в текущий момент пишу программу с авторизацией, которая будет производить расчеты для пользователей) для того, чтобы в будущем программировать микроконтроллеры(знакомый посоветовал изучать С++). В настоящее время работодатели без опыта работы и необходимых знаний не берут, а также стажером. Прошу Вас дать совет какие книги, статьи и материалы...
Микроконтроллер Не подключаются МК PIC16f887 по I2С. C. MikroC https://www.cyberforum.ru/ microcontrollers/ thread2019011.html
* не I2O , а I2C Контроллеры вроде настроил, но когда отравляю адрес для подключения ведомого ведомый не видит адреса и не подключаеться, а ведущий ждет подтверждения подключения. общий инклуд : void I2C_Initializate_Master( void ) { print_d(7, "I2C_I_1");
Микроконтроллер Pic12F675. не мигает светодиод:)
Всем привет! нашел в инете такое: http://arduinokit.ru/electronics/microcontrollers/blinking-led.html заливаю в свой pic12f675 прошивку с вышеприведённого ресурса -- всё мигает лучше чем надо. заливаю свою -- ничего. Тыкаюсь уже 2й день, Подскажите, в чём беда в моём коде?
Микроконтроллер USB-реле Доброго всем времени суток! Сразу оговорюсь, что в микроконтроллерах я как свинья в апельсинах... Появилась идея программно управлять блоком питания внешнего USB-диска, а также коммутировать его сигнальные линии UBS-порта на два компьютера. На Алиэкспрессе продают т.н. USB-реле, например, ТАКОЙ Судя по фото https://www.cyberforum.ru/ microcontrollers/ thread2017010.html
Микроконтроллер Нужен bootloader для PIC18 с eth подключением. (?) https://www.cyberforum.ru/ microcontrollers/ thread2015115.html
Приветствую! Есть неопознанная плата с микроконтроллером PIC18F67J60 и ethernet разъёмом. Требуется считать и сохранить имеющуюся прошивку(есть шанс, что она не защищена от считывания), затем придумать и записать на её место новую, вероятно это возможно сделать с помощью компьютера и eth-соединения по патч-корду. Сам я не особо хорошо разбираюсь в электронике и МК, однако предполагаю, что...
RFID RC522 протокол обмена Микроконтроллер
Переделал модуль как в этой статье. Хочу подключить модуль к PIC через UART. Пытался нагуглить, но везде только скетчи для Arduino с ее библиотеками... Как вообще происходит обмен с этим модулем? Модуль сразу выдает номер карточки или его нужно постоянно опрашивать? У кого получилось, пожалуйста, поделитесь алгоритмом!
Микроконтроллер SSL для Микроконтроллера Texas instruments tm4c1294 Добрый день. Имеется такой вопрос. Возможно ли плату TI-tm4c1294 запрограммировать так, чтобы она заходила на сервер электронной почты к примеру (Яндекс или Google), авторизовывалась там, отправляла на какой-либо адрес письмо, и завершала процесс. Соответственно проблема заключается в протоколе HTTPS, т.к. необходим ключ шифрования. Как подключаться, и что делать. Кто-нибудь если сталкивался с... https://www.cyberforum.ru/ microcontrollers/ thread2011018.html Микроконтроллер Народ где скачать AVR/PIC pascal? https://www.cyberforum.ru/ microcontrollers/ thread2006053.html
Народ где скачать AVR/PIC pascal? Народ где скачать можно среду программирования AVR pascal и PIC pascal ну вы понимаете что скачать та можно но там требует...а мне надо что бы не требовало.
Микроконтроллер Падает напряжение на ноге
Электронику начал осваивать недавно, больше программист. Ситуация: хочу подключить светодиод к источнику питания (батарейка). Напряжение 3.3 вольта, на светодиоде падение 2 вольта ставлю резистор на 100Ом, ток через светодиод 13 мА. Все четко, мультиметр показывает все значения правильно. Беру микроконтроллер (stm8s, логический уровень 3.3 вольта). Выславляю единицу на ногу. Замеряю...
Микроконтроллер ПДУ с 4 кнопками. Что можно сделать? Имеется пульт ДУ с 4 кнопками (предназначался для шлагбаума). На нем стоит плата s214, процессор 24c64f p2400g. Как узнать на какой частоте пульт работа
0 / 0 / 1
Регистрация: 07.08.2014
Сообщений: 63
0

Компаратор в микроконтроллере PIC18F25K22 (MPLAB C18) - Микроконтроллеры - Микроконтроллер - Ответ 10662311

03.08.2017, 15:24. Показов 1289. Ответов 1
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. В данный момент у меня на руках плата с контроллером PIC18F25K22 и проект от предыдущего сотрудника. Если очень рассказать очень сжато суть проекта, то есть первичный преобразователь расхода, который состоит из магнито-механического клапана, поршня и катушки индуктивности, обеспечивающей индикацию перемещения поршня в клапане и частичное управление поршнем. При открытии клапана на катушке формируется положительный потенциал, что может быть установлено с помощью компаратора, настроенного на верхний предел (ножка RA4, она же C1OUT). При закрытии клапана на катушке формируется отрицательный потенциал, что приводит к срабатыванию компаратора, если он настроен на нижний предел.

Так вот, весь механизм фиксации открытия/закрытия клапана построен на 7 ключевых точках, в которых мониторятся определенные состояния и производятся определенныедействия. Компаратор настроен так:
C
1
2
3
4
5
6
7
TRISAbits.RA4 = 0;      // установить порт RА4 на выход (выход компаратора)
PORTAbits.RA4 = 0;
CM1CON0bits.C1POL = 0;      // логика на C1OUT не инвертирована
CM1CON0bits.C1SP = 0;       // компаратор работает в режиме малой мощности и низкой скорости
CM1CON0bits.C1R = 0;         
CM1CON0bits.C1CH = 1;   // выставить канал компаратора на верхний предел
IPR2bits.C1IP = 1;          // приоритет прерываний от компаратора C1 высокий
И обработчик его прерывания:
C
1
2
3
4
5
6
7
8
9
10
void high_isr()
{
     if (PIR2bits.C1IF)               // прерывание от компаратора
    {
            if ((PIE2bits.C1IE) && (T3CONbits.TMR3ON == 0)) // если прерывания от компаратора разрешены и таймер TMR3 свободен
                FFComparator1Interrupt();           // войти в обработчик прерываний компаратора
            CM1CON0bits.C1OUT = 0;                     // выставить 0 на выходе компаратора
            PIR2bits.C1IF = 0;           // сбросить флаг прерывания
    }
}
Все начинается с состояния PPR_CLOSE:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void FFComparator1Interrupt()
{
    switch(PPR.State)
    {
        case PPR_CLOSE:
                    DelayInterrupt = 0; //исключаем пересечения
                    if (CM1CON0bits.C1CH == 1)              // если компаратор переключен на верхний порог (т.е. фиксируем движение клапана)
                    {
                        PPR.State = PPR_START_OPEN;  // изменить состояния клапана на "Начал открываться"
                        PIE2bits.C1IE = 0;                      // отключить прерывания от компаратора
                        PORTAbits.RA4 = 1;                      // поднять уровень сигнала на линии TAU
                        CM1CON0bits.C1OE = 0;                   // отключить выход компаратора (не реагировать на изменения на выходе)
                        timer3Delay(2);                         // установить задержку в 2мс
                        DelayInterrupt = 1;          // выставить флаг для обработчика прерываний таймера TMR3
                    }
                    else
                    {
                        CM1CON0bits.C1CH = 1;              // переключить компаратор на верхний порог
                    }
                    break;
    }
    return;
}
В следующем же состоянии PPR_START_OPEN:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
void FFTimerEvent()
{
    switch(PPR.State)
    {
        case PPR_START_OPEN: 
                    if (CM1CON0bits.C1CH == 1)              // если компаратор переключен на верхний порог
                    {
                        if (CM1CON0bits.C1OUT == 1)                // если клапан действительно открывается
                        {
                            timer3Delay(40);                    // установить задержку в 40мс для исключения дребезга
                            DelayInterrupt = 1;      // выставить флаг для обработчика прерываний таймера TMR3
                            PPR.State = PPR_PRE_OPEN;// изменить состояния клапана на "Почти открылся"
                            StateChanged = 1;        // выставить флаг о смене состояния клапана
                        }
                        else                                    // иначе это был дребезг
                        {
                            PPR.State = PPR_CLOSE;
                            CM1CON0bits.C1OE = 1;               // подключить выход компаратора
                            PIR2bits.C1IF = 0;       // сбросить флаг прерывания компаратора
                            PIE2bits.C1IE = 1;                  // включить прерывания от компаратора
                        }
                    }
                    else
                    {
                        CM1CON0bits.C1CH = 1;               // переключить компаратор на верхний порог
                        timer3Delay(1);                         // установить задержку в 1мс
                        DelayInterrupt = 1;          // выставить флаг для обработчика прерываний таймера TMR3
                    }
                    break;
    }
}
При попытке разобраться возникли спорные моменты: подскажите, пожалуйста
1. зачем по окончании обработки прерывания компаратора выставляется CM1CON0bits.C1OUT = 0 ?
2. зачем в след. за первым состоянием мониторится CM1CON0bits.C1OUT == 1, когда только что был CM1CON0bits.C1OUT = 0 ? Что мы просто мониторим в данном случае, и что сейчас на выходе компаратора реально?
3. действие PORTAbits.RA4 = 1 в первом состоянии не идентично CM1CON0bits.C1OUT = 1? Просто по даташиту Pin #6 = RA4 (C1OUT, SRQ, CCP5, T0CKI) Связаны ли эти два действия вообще друг с другом и как?
И если кому то интересно, то вот изображение самого сигнала (измеряемый промежуток находится между вертикальными пунктирными линиями):

Вернуться к обсуждению:
Компаратор в микроконтроллере PIC18F25K22 (MPLAB C18) - Микроконтроллеры Микроконтроллер
Миниатюры
Компаратор в микроконтроллере PIC18F25K22 (MPLAB C18) - Микроконтроллеры  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.08.2017, 15:24
Готовые ответы и решения:

Кодировка для кириллицы (MPLAB C18)
Добрый день. Столкнулся с такой проблемой, что при размещении данных во флеш-памяти, символы...

MPLAB X + C18
Ситуация следующая. Недавно начал ковырять веб-сервер для PIC18F67J60. Веб-сервер работает,...

MPLAB C18 v3.47 и отсутствующие исходники библиотек на С
Добрый день. Подскажите, пожалуйста, после установки MPLAB C18 v3.47 в папках C:\Program...

PIC18F25K22. Максимальная скорость передачи по USART
Добрый день. Попала ко мне в руки платка с контроллером PIC18F25K22 и проект для нее. Стоит внешний...

Компилятор mcc18 (C18), ограничения sprintf
Добрый день. У меня есть число типа float. Необходимо его записать в массив, дополнив целую и...

1
03.08.2017, 15:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.08.2017, 15:24
Помогаю со студенческими работами здесь

C18 Функция Strtok - считывается только первое число строки
Добрый день. У меня возникла необходимость парсить большое количество строк и вычленять числа из...

Компаратор
Есть некий класс public class Dog implements Comparable { private String parrod; private...

Компаратор
Есть такой код: import java.util.Arrays; import java.util.Comparator; class Product { ...

Компаратор
Нужно отсортировать 1. за классом 2.за буквой класса 3.за фамилией package dela; import...

Компаратор
Есть класс: public clas SortedList<E>{ E arrays; } Как сравнить элемента...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru