Форум РадиоКот https://radiokot.ru/forum/ |
|
PIC16F84A - Proteus vs Реальность https://radiokot.ru/forum/viewtopic.php?f=58&t=197557 |
Страница 1 из 2 |
Автор: | Denis-1307 [ Сб апр 12, 2025 16:41:57 ] |
Заголовок сообщения: | PIC16F84A - Proteus vs Реальность |
Всем доброго времени суток. Решил я тут начать изучать программирование микроконтроллеров PIC и вот с какой проблемой столкнулся. Написал простейшую мигалку светодиодом для PIC16F84A (есть небольшой опыт в программировании AVR). В протеусе все прекрасно работает, а вот на реальном железе либо не работает вообще, либо светодиод моргает раз в несколько секунд. Помогите разобраться, что я делаю не так. Вот код программы. Среда разработки - MPLAB X IDE, компилятор - XC8, программатор - PicKit 3 Код: /* PIC16F84A * Config bits: 3FF1 * File: main.c * Author: Denis * Project: Blink * Created on 12.04.2025 */ #include <xc.h> #define _XTAL_FREQ 4000000 #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; } Всем спасибо за оказанную помощь. |
Автор: | Zikon [ Сб апр 12, 2025 17:46:43 ] |
Заголовок сообщения: | Re: PIC16F84A - Proteus vs Реальность |
1. А где задан чип в исходнике (#define) ? // ой, да там при компиляции подставляется 2. Лучше бы взял pic16f628a или pic16f690, и то это только для тренировки. |
Автор: | Denis-1307 [ Сб апр 12, 2025 17:53:16 ] |
Заголовок сообщения: | Re: PIC16F84A - Proteus vs Реальность |
1. А где задан чип в исходнике (#define) ? А разве MPLAB IDE этого не делает когда создаешь проект? Там ведь указывается тип контроллера для которого пишется прошивка. Если MPLAB этого не делает, то тогда это записывается так? #define <16F84A.h> Если не прав, поправьте. |
Автор: | Уош [ Сб апр 12, 2025 17:53:40 ] |
Заголовок сообщения: | Re: PIC16F84A - Proteus vs Реальность |
Покажите схему реального железа. |
Автор: | Denis-1307 [ Сб апр 12, 2025 17:56:10 ] |
Заголовок сообщения: | Re: PIC16F84A - Proteus vs Реальность |
Покажите схему реального железа. Сейчас не могу, все на работе осталось. В понедельник покажу ![]() |
Автор: | OKF [ Сб апр 12, 2025 20:09:23 ] |
Заголовок сообщения: | Re: PIC16F84A - Proteus vs Реальность |
Да, есть такая проблемка с Протеусом. Не всё на 100% эмулирует.( А зачем return? Это к делу не относится.) |
Автор: | valentinovich [ Сб апр 12, 2025 21:20:30 ] |
Заголовок сообщения: | Re: PIC16F84A - Proteus vs Реальность |
Denis-1307, вот - https://микроник.рус/pic16f84a-migaem-svetodiodom/ Да и вообще - данный сайт молча ответит на множество подобных (как у ТС и не только) вопросов. ![]() |
Автор: | Asmodey [ Сб апр 12, 2025 22:34:33 ] |
Заголовок сообщения: | Re: PIC16F84A - Proteus vs Реальность |
Denis-1307, данные в порты записывайте через регистры-защелки latch, а не напрямую в порт. Время выполнения кода смотрите в между точками останова в MPLAB, а не в Протеусе. |
Автор: | КРАМ [ Сб апр 12, 2025 22:43:25 ] |
Заголовок сообщения: | Re: PIC16F84A - Proteus vs Реальность |
В понедельник покажу ![]() Вы кварц с керамикой на МК, надеюсь, повесили? ![]() |
Автор: | Уош [ Сб апр 12, 2025 23:03:39 ] |
Заголовок сообщения: | Re: PIC16F84A - Proteus vs Реальность |
Asmodey, а у этого пика нет регистра-защёлки (я тоже сначала об этом подумал) |
Автор: | КРАМ [ Сб апр 12, 2025 23:07:38 ] |
Заголовок сообщения: | Re: PIC16F84A - Proteus vs Реальность |
я тоже сначала об этом подумал Он пишет в единственный пин. Поэтому предупреждение неактуально. Проблемы RMW для единственного пина не существует. Проблема возникает при перекрестной побитной модификации. |
Автор: | Уош [ Сб апр 12, 2025 23:13:40 ] |
Заголовок сообщения: | Re: PIC16F84A - Proteus vs Реальность |
Да, уже забываю об этом, спасибо! |
Автор: | Asmodey [ Вс апр 13, 2025 02:06:08 ] |
Заголовок сообщения: | Re: PIC16F84A - Proteus vs Реальность |
Asmodey, а у этого пика нет регистра-защёлки Тем хуже для него. Придется искать причину в какойнить метафизической области. Положим, в отсутствующих блокирующих конденсаторах по питанию.
|
Автор: | Уош [ Вс апр 13, 2025 02:38:16 ] |
Заголовок сообщения: | Re: PIC16F84A - Proteus vs Реальность |
Вот потому я и предложил показать схему. Я грешил на плавающий сброс, КРАМ на кварц, и вот теперь конденсаторы питания... Три мнения об обвязке. Вероятность повышается. |
Автор: | Zikon [ Вс апр 13, 2025 07:55:05 ] |
Заголовок сообщения: | Re: PIC16F84A - Proteus vs Реальность |
А если не читать с порта а хранить в переменной текущее записанное значение? Что-то изменится? |
Автор: | КРАМ [ Вс апр 13, 2025 10:14:51 ] |
Заголовок сообщения: | Re: PIC16F84A - Proteus vs Реальность |
Замените xor на прямой вывод в порт, а xor делайте с переменной в ОЗУ и значение этой переменной выводите в порт. Но если пин порта у вас не нагружен, то вероятность бага связанного с RMW будет стремится к нулю. ЗЫ. Есть смутное подозрение, что светодиод у вас висит на пине без балласта... и в этом вся проблема. Тогда RMW в полный рост. ![]() |
Автор: | Asmodey [ Вс апр 13, 2025 12:21:28 ] |
Заголовок сообщения: | Re: PIC16F84A - Proteus vs Реальность |
Я грешил на плавающий сброс, КРАМ на кварц, и вот теперь конденсаторы питания... К слову, без конденсаторов по питанию может и по цепям сброса рандомно помеха пробегать. Два в одном.
|
Автор: | Denis-1307 [ Вс апр 13, 2025 13:29:32 ] |
Заголовок сообщения: | Re: PIC16F84A - Proteus vs Реальность |
Да, кварц с керамикой на 22 пФ. Единственное что не делал, так это конденсаторы по питанию. Возможно в них проблема, но проверить смогу только завтра. Как проверю отпишусь. Спасибо за советы. Добавлено after 3 minutes 16 seconds: Замените xor на прямой вывод в порт, а xor делайте с переменной в ОЗУ и значение этой переменной выводите в порт. Но если пин порта у вас не нагружен, то вероятность бага связанного с RMW будет стремится к нулю. ЗЫ. Есть смутное подозрение, что светодиод у вас висит на пине без балласта... и в этом вся проблема. Тогда RMW в полный рост. ![]() Светодиод подключён через резистор 220 Ом |
Автор: | Denis-1307 [ Пн апр 14, 2025 10:31:38 ] | ||
Заголовок сообщения: | Re: PIC16F84A - Proteus vs Реальность | ||
Покажите схему реального железа. Схема вообще не подает признаков жизни.
|
Автор: | veso74 [ Пн апр 14, 2025 11:03:25 ] |
Заголовок сообщения: | Re: PIC16F84A - Proteus vs Реальность |
Какая надпись на конденсаторах к кварцу? Какая надпись на кварцевом резонаторе? Установите хотя бы один фильтрующий конденсатор. Подключите подтягивающий резистор MCLR к VDD. |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |