HRP-N3 - серия источников питания с максимальной пиковой мощностью в 350% от MEAN WELL

Программирование микроконтроллера PIC конструкция if-else

Страница 1 из 2
Новичок
 
Аватар для RomanEfimov
 
Регистрация: 02.03.2012
Сообщений: 193
Репутация: 13
3 55
0 0
 
20.03.2012 12:34 #1
Пробую программировать микроконтроллеры PIC (виртуально, в is-is).
Мигать по разному светодиодами научился, а вот чтобы на нажатие кнопки загорался определённый светодиод, не получается. Скорее всего, дело в том, что в условии пишу что-то не то, т.к. выполняется действие, как будто это условие выполнено, т.е. без кнопки светодид горит. Вот текст программы:
#include <pic.h>
__CONFIG(0x03F72);

void main(void)
{
T0IE=0;
GIE=0;
TRISB=0;
PORTB=0;
TRISC=1;
while(1==1)
{
if(PORTC=1)
{
PORTB=1;
}
else
{
PORTB=0;
}
}
}
Среда разработки VPLAB. Может дело в configuration bits? Помогите пожалуйста.
Оценка
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Новичок
 
Регистрация: 10.06.2009
Сообщений: 19
Репутация: 13
3 3
0 0
 
20.03.2012 14:22 #2
PIC давно не занимался работаю с AVR, так что могу немного напутать с обозначением...
но у Вас в логике if(PORTC=1)
возможна ошибка. Вы читаете из буфера порта, а Вам надо читать с входа
т.е. должно быть что-то типа if (PINC=1)
уточните как называется вход порта у контроллера PIN и ли как то по другому,
но суть ошибки именно в этом.
Удачи!
Оценка
Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.
Новичок
 
Аватар для RomanEfimov
 
Регистрация: 02.03.2012
Сообщений: 193
Репутация: 13
3 55
0 0
 
20.03.2012 17:10 #3
PINC=1 не работает. Может кто-нибудь ещё поможет?
Оценка
Новичок
 
Регистрация: 10.06.2009
Сообщений: 19
Репутация: 13
3 3
0 0
 
20.03.2012 17:33 #4
Цитата:
Сообщение от RomanEfimov
PINC=1 не работает. Может кто-нибудь ещё поможет?
А я Вам сказал проверьте как читать из порта!
Я не гарантировал название PIN !!!!

Вот смотрите, уточняю

А Вы не забыли перед операцией чтения
перевести порт в режим INPUT может в этом проблема?


TRISC = FF; переводим C в режим input
Вот примерчик чтения байта
TRISD = 0xFF; //все пины порта PORTD на input
temp = PORTD;

вот еще чтение с конкретной ноги

trisa = 0x04; // set portA 2 as input
porta = 0;

if(porta.2 == 1)
{
portc.4 = 0; // LED OFF
}
if(porta.2 == 0) {
portc.4 = 1; // LED ON
}

надо читать конкретный вывод куда подключена кнопка
например if(porta.2 == 1)

обратите внимание if(porta.2 == 1)

а у Вас if(PORTC=1) т.е. не сравнение а присваивание(если Ваш код на языке Си)
тогда здесь ошибка, проверьте!
Последний раз редактировалось dimasamchenko; 20.03.2012 в 18:13.
Оценка
Новичок
 
Аватар для RomanEfimov
 
Регистрация: 02.03.2012
Сообщений: 193
Репутация: 13
3 55
0 0
 
20.03.2012 18:32 #5
Выдаёт кучю ошибок...
Побробывал по разному. Может не туда вставил. Дайте пожалуйста всю программу полностью.
Оценка
Новичок
 
Регистрация: 10.06.2009
Сообщений: 19
Репутация: 13
3 3
0 0
 
20.03.2012 18:38 #6
Цитата:
Сообщение от RomanEfimov
Выдаёт кучю ошибок...
Побробывал по разному. Может не туда вставил. Дайте пожалуйста всю программу полностью.
Дайте свою программу, постараюсь поправить.
Написать полностью за Вас не получится, не знаю, что у Вас куда включено и какой компилятор!

например исправим старую версию
#include <pic.h>
__CONFIG(0x03F72);

void main(void)
{
T0IE=0;
GIE=0;
TRISB=0;
PORTB=0;
TRISC=0xFF; //все пины порта PORTС на input
while(1)
{
if(PORTC.1==1)//кнопка на 1 разряде или поставте что Вам нужно!
// может у Вас должно быть PORTC.3==0 откуда я знаю???
{
PORTB=1;
}
else
{
PORTB=0;
}
}
}
как-то так.
Последний раз редактировалось dimasamchenko; 20.03.2012 в 18:56.
Оценка
Новичок
 
Аватар для RomanEfimov
 
Регистрация: 02.03.2012
Сообщений: 193
Репутация: 13
3 55
0 0
 
20.03.2012 18:47 #7
Из первого сообщения подредактируйте, нужно ли подключать заголовочные файлы и что добавлять если несколько конструкций if-else.
Делаю hex файл в mplab и вставляю в ptroteys is-is.
Оценка
Новичок
 
Регистрация: 10.06.2009
Сообщений: 19
Репутация: 13
3 3
0 0
 
20.03.2012 18:52 #8
"Из первого сообщения подредактируйте,"
подредактировал

" нужно ли подключать заголовочные файлы"
незнаю что Вам нужно и какие файлы, по крайней мере тип контроллера
нужен

" и что добавлять если несколько конструкций if-else."
вот это вообще непонятно что Вы имели ввиду


Делаю hex файл в mplab и вставляю в ptroteys is-is.
с ptroteys никогда дела не имел, ничего сказать немогу

О результатах сообщите
Последний раз редактировалось dimasamchenko; 20.03.2012 в 19:05.
Оценка
Новичок
 
Аватар для RomanEfimov
 
Регистрация: 02.03.2012
Сообщений: 193
Репутация: 13
3 55
0 0
 
20.03.2012 19:09 #9
В условии if номер вывода только через запетую пропустил, светодиод никак не горит.
Оценка
Новичок
 
Регистрация: 10.06.2009
Сообщений: 19
Репутация: 13
3 3
0 0
 
20.03.2012 19:14 #10
А вы можете показать что у Вас куда запаяно, как включен светодиод?
Схемку покажите.
"В условии if номер вывода только через запетую пропустил"
Что значит через запятую??? Там точка должна быть.
Оценка
Ответ
Страница 1 из 2
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Оценка этой теме
Оценка этой теме:
Похожие темы
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход
Электронные компоненты. Бесплатная доставка по России
Часовой пояс GMT +3, время: 05:33.
Обратная связь РадиоЛоцман Вверх