Заголовок сообщения: PIC16F84A - Proteus vs Реальность
Добавлено: Сб апр 12, 2025 16:41:57
Родился
Зарегистрирован: Сб сен 28, 2024 16:19:04 Сообщений: 12
Рейтинг сообщения:0
Всем доброго времени суток. Решил я тут начать изучать программирование микроконтроллеров PIC и вот с какой проблемой столкнулся. Написал простейшую мигалку светодиодом для PIC16F84A (есть небольшой опыт в программировании AVR). В протеусе все прекрасно работает, а вот на реальном железе либо не работает вообще, либо светодиод моргает раз в несколько секунд. Помогите разобраться, что я делаю не так.
Вот код программы. Среда разработки - MPLAB X IDE, компилятор - XC8, программатор - PicKit 3
#pragma config FOSC = XT // Oscillator Selection bits (XT oscillator) #pragma config WDTE = OFF // Watchdog Timer (WDT disabled) #pragma config PWRTE = ON // Power-up Timer Enable bit (Power-up Timer is enabled) #pragma config CP = OFF // Code Protection bit (Code protection disabled)
void main(void) { TRISB &= ~(1<<2); //пин RB2 режим работы - выход PORTB &= ~(1<<2); //0 В на пине RB2 while(1) { __delay_ms(500); //ждем 0,5 сек PORTB ^= (1<<2); //инвертируем значение на пине RB2 } return; }
1. А где задан чип в исходнике (#define) ? // ой, да там при компиляции подставляется 2. Лучше бы взял pic16f628a или pic16f690, и то это только для тренировки.
А разве MPLAB IDE этого не делает когда создаешь проект? Там ведь указывается тип контроллера для которого пишется прошивка. Если MPLAB этого не делает, то тогда это записывается так? #define <16F84A.h> Если не прав, поправьте.
Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.
Он пишет в единственный пин. Поэтому предупреждение неактуально. Проблемы RMW для единственного пина не существует. Проблема возникает при перекрестной побитной модификации.
Заголовок сообщения: Re: PIC16F84A - Proteus vs Реальность
Добавлено: Вс апр 13, 2025 02:38:16
Опытный кот
Зарегистрирован: Вс мар 23, 2025 14:56:55 Сообщений: 700
Рейтинг сообщения:0
Вот потому я и предложил показать схему. Я грешил на плавающий сброс, КРАМ на кварц, и вот теперь конденсаторы питания... Три мнения об обвязке. Вероятность повышается.
Замените xor на прямой вывод в порт, а xor делайте с переменной в ОЗУ и значение этой переменной выводите в порт. Но если пин порта у вас не нагружен, то вероятность бага связанного с RMW будет стремится к нулю. ЗЫ. Есть смутное подозрение, что светодиод у вас висит на пине без балласта... и в этом вся проблема. Тогда RMW в полный рост.
Да, кварц с керамикой на 22 пФ. Единственное что не делал, так это конденсаторы по питанию. Возможно в них проблема, но проверить смогу только завтра. Как проверю отпишусь. Спасибо за советы.
Замените xor на прямой вывод в порт, а xor делайте с переменной в ОЗУ и значение этой переменной выводите в порт. Но если пин порта у вас не нагружен, то вероятность бага связанного с RMW будет стремится к нулю. ЗЫ. Есть смутное подозрение, что светодиод у вас висит на пине без балласта... и в этом вся проблема. Тогда RMW в полный рост.
Какая надпись на конденсаторах к кварцу? Какая надпись на кварцевом резонаторе? Установите хотя бы один фильтрующий конденсатор. Подключите подтягивающий резистор MCLR к VDD.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения