Заголовок сообщения: Re: Програмирование pic на СИ.
Добавлено: Вт май 10, 2022 19:34:54
Родился
Зарегистрирован: Вт май 10, 2022 19:26:55 Сообщений: 2
Рейтинг сообщения:0
Здравствуйте. Ситуация такая, написал простенькую программу для PIC12F675. Программа компилируется без ошибок в MPLAB X там же в отладчике она работает как и должна. Далее загружаю полученный hex в proteus и там... она работает неправильно. В чем дело не понял, ту же самую программу адаптировал для microC и получил такой же результат - в отладчике microC работает как и должна, а в proteus - опять неправильно. Попробовал загрузил в контроллер - результат как в proteus работает неправильно. Где искать причину. Не ругайте сильно я только начал программировать.
СпойлерMPlabX v6.0
Код:
/* * File: main.c * Author: Roo * * Created on 8 ??? 2022 ?., 11:29 */
#include <stdio.h> #include <stdlib.h>
/* * */ // CONFIG #pragma config FOSC = INTRCIO // Oscillator Selection bits (INTOSC oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN) #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled) #pragma config PWRTE = ON // Power-Up Timer Enable bit (PWRT enabled) #pragma config MCLRE = ON // GP3/MCLR pin function select (GP3/MCLR pin function is MCLR) #pragma config BOREN = ON // Brown-out Detect Enable bit (BOD enabled) #pragma config CP = OFF // Code Protection bit (Program Memory code protection is disabled) #pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled)
#define _XTAL_FREQ 4000000 // Fosc frequency for _delay() library
// #pragma config statements should precede project file includes. // Use project enums instead of #define for ON and OFF. #include <xc.h>
Подскажите, пожалуйста, возможно ли на pic16f628 (или 648) реализовать следующую задачу: На входе сигнал стандартный для сервомашинок (частота 50 Гц, продолжительность импульса от 1 до 2 мс (0-100%)). На выходе нужно получить ШИМ с максимально возможной для МК частотой со скважностью от 0 до 100% соответственно сигналу на входе. Вроде как в этих пиках 2 таймера. Выбор МК обусловлен их наличием (выкинуть жалко)
Дайте краткое описание устройства, для которого предназначен этот узел. Какое разрешение сервомашинки? 125 шагов за 180 градусов ОК? Дайте примерные данные и для "ШИМ с максимально возможной для МК частотой". У PIC16F628A есть три таймера.
У этих PIC имеется аппаратный модуль PWM, частота известна, нужно знать период. Таймеров 3, на все должно хватить. Во вложении переводной даташит, там все есть.
P.S. Данный документ для PIC16F648 тоже должен подойти. Отличаются от 627/628 только увеличенным объемом FLASH/RAM/EEPROM вроде.
причём тут вообще всё? причём тут нюансы? я спросил что в какие регистры писать. просто я привык к CMSIS и, возможно, изъясняюсь на непонятном вам языке, когда прошу "подсказать по коду на С"
Я на алгоритме написал CCP1 - capture, rise mode - в какие регистры писать сказано в док. Как и From PPM-pulse calc value from TMR2, PR2 and start PWM - тоже
Вы также должны сообразить какая ножка является вход, выход. Про компараторов не забывай. И т.д. Также и Loop Ваше дело. Все написано в PDF. Вам его дали выше.
Заголовок сообщения: Re: Програмирование pic на СИ.
Добавлено: Вс июн 11, 2023 17:50:59
Родился
Зарегистрирован: Вс май 07, 2023 17:27:42 Сообщений: 1
Рейтинг сообщения:0
Привет, ребят. Засиделся на xc8 версии 1.4 в PRO оптимизации 1) Есть ли существенная функциональная разница современных версий си компилятора и тех прошлых? Сейчас меня ничего не ограничивает от использования 1.4, однако, возможно, есть какие-то существенные автоматизации, улучшения и проч. 2) Раздают ли где кряк на современные версии хс8? Спасибо
Заголовок сообщения: Re: Програмирование pic на СИ.
Добавлено: Пн июл 24, 2023 21:56:41
Родился
Зарегистрирован: Вс янв 03, 2021 21:35:39 Сообщений: 17 Откуда: Южный Урал
Рейтинг сообщения:0
Привет всем кто в теме. Набрал код часов на ГРИ ИН-14 и мк PIC16F628, часики тикают от TMR1 в асинхронном режиме с внешнего кварца на 32768. TMR0 работает совместно с ШИМ для динамики ГРИ. В принципе, схема часов стандартная, наверное не раз рассмотренная на этом сайте. Но я не ищу легких путей, поэтому код на СИ пишу сам. Часы работают. Проблема моя в той части кода, которая связана с настройкой-установкой часов и минуты, никак не могу разобраться. В режиме установки (корректировки) часов при нажатии на кнопку PLUS показания часов инкрементируются до 23 и потом сброс на 0 и далее по возрастанию, т.е. все как надо. А вот при нажатии на кнопку MINUS идет декримент до 0 и все на этом стопорится, а надо чтобы дошло до 0 и потом произошел переход на 23 и снова по нисходящей. Тоже самое при настройке минут, при нажатии на MINUS доходит до 0 и счет останавливатся, а надо что бы был переход на 59 и далее счет вниз по кругу. При нажатии на плюс все нормально.
Прошу помощи - в чем может быть ошибка в коде, куда копать чтобы все работало как надо? Код main.c прикладываю, там где Установка Часов и Установка Минут в комментариях указал, где код не работает. Код пишу в MPLAB IDE v4.01., компилятор XC8.
Спойлер
Код:
/* * File: Clock_IN14_test * Author: SolderCat * v.1.01 * Created on 24 Jule 2023, 22:45 * MCU PIC16F628A */
Возможно, у вашего компилятора char беззнаковый, поэтому при декременте нуля получается 255, что "больше, чем 59" и никак не "меньше нуля". попробуйте объявить min как signed char
Я не знаю кто вам сказал об ограничении в 8 байт, но это полный бред.
У меня вопрос у вас получилось отправить в блок более 8 байт? А про это я сам прочитал к примеру в ELM327L_DSA.pdf на 14 странице. Столкнулся что на рено Espace 4 надо было скогнфигурировать блок ручника новый и сменить вин, но елм327 не может отправить 8 байт, приходит в ответ знак вопроса. Пробовал даже через elm327chat отсылать вручную команды, если 8 байт отправить то отправляет, но мне надо больше 8, и приходит ? в овет
У меня вопрос у вас получилось отправить в блок более 8 байт?
Вы точно умеете читать русский текст? В блок вы можете отправить любое количество байт. МК тут вообще не причем. Изучите протокол связи с блоком и сделайте обмен в соответствии с ним.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 102
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения