Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 28.06.2020
Сообщений: 5
1

Практика PIC

20.07.2020, 20:39. Просмотров 268. Ответов 4

Доброго времени суток. Пытаюсь учиться программировать PIC, программирую я в среде MicroC PRO for PIC.
В MicroC есть возможность управлять отдельно каждым каналом любого порта, конфигурировать его как ввод-вывод, или true-false. В моем случае я программирую PIC16F887, и столкнулся с такой проблемой как с непониманием, недумал что это тонко.
Я пытался подключить кнопку к порт А канал 0, а светодиод к порт А канал 1. У меня это никак не работало.(нажимал кнопку должен загораться светодиод) После чего я писал на другие порты. Например порт А кнопка - ввод, порт Б светодиод - вывод.
Тоже прописывал ввод и вывод по каналам. Как то работало порт А кнопка и порт С светодиод, напрямую порты, без каналов. Работало, но работает когда как. Народ? Объясните, такая капризность это нормально? Учусь пока на макетке пластиковой, везде мультиметром проверял, сигнал от кнопки и питание МК есть. Объясните, это нормально такая работа микроконтроллера или нет? Именно с портами, что 1 порт (8 каналов) может работать только на ввод или вывод? И как это вообще? А то какой смысл идти дальше если такие непонятки
0
Миниатюры
Практика PIC   Практика PIC   Практика PIC  

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.07.2020, 20:39
Ответы с готовыми решениями:

mikroPascal for PIC
Господа, а кроме SWK здесь кто-нибудь пользуется микропаскалем для PIC? Как впечатления? Стоит ли...

Micro C for PIC
Только с ним начал. Поморгал светодиодами. До этого писал программы для АВР в КодеВижн. Как-то...

PIC программатор
Собираюсь делать pic программатор,нашел схему:http://gouss2k.narod.ru/jab/jdm.htm.Вопрос:что за...

LVP for PIC
Не владею пиками, но есть вопрос. Этот LVP, для пиков требует особой схемы программирования и...

4
Модератор
8201 / 6071 / 811
Регистрация: 14.02.2011
Сообщений: 21,062
21.07.2020, 07:33 2
Vgorax, не надо листинги приводить скриншотами
правило 5.18
Запрещено размещать задания и решения в виде картинок (кроме формул и блок-схем) и других файлов с их текстом.
просто напечатайте листинг в тексте сообщения выделяете его и жмете кнопочку "С"(для языка Си) в шапке сообщения
вот так это будет выглядеть
C
1
int main()
или вручную поставьте тэги[CLANG] в начале листинга
и[/ CLANG](пробел не нужен)в конце
вот так
[CLANG]int main() [/CLANG]
1
901 / 541 / 81
Регистрация: 15.05.2012
Сообщений: 3,168
21.07.2020, 10:00 3
Vgorax, после сброса порта в 0 сколько времени проходит до установки его в "1"? То-то же.
0
158 / 146 / 14
Регистрация: 03.02.2012
Сообщений: 668
Записей в блоге: 1
21.07.2020, 14:06 4
Нужно писать и читать не port, а конкретный бит в порту

C++
1
PORTAbits.RA1 = 1;
Это провда код для MPLABX , а не MicroC PRO
0
0 / 0 / 0
Регистрация: 28.06.2020
Сообщений: 5
21.07.2020, 19:24  [ТС] 5
Не работает, светодиод постоянно горит...Ток на кнопку сброса реагирует.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
void main()
{
     TRISA.F1 = 0; // LED
     TRISA.F0 = 1; // button
     //Sound_Init(&PORTC, 0);      // Init Sound
     while(1)
     {
          if (PORTA.F0 == 1){
          delay_ms(300);        // Test RA4 keypress
          PORTA.F1 = 1;
          delay_ms(300);
          PORTA.F1 = 0;
          }
          //PORTC = 0;
                 // 1 kHz sound ON RC0
     }
}
Добавлено через 3 минуты
Если так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void main()
{
     TRISA.F1 = 0; // LED
     TRISA.F0 = 1; // button
     //Sound_Init(&PORTC, 0);      // Init Sound
     while(1)
     {
          if (!PORTA.F0 == 1){
          delay_ms(300);        // Test RA4 keypress
          PORTA.F1 = 1;
          delay_ms(300);
          PORTA.F1 = 0;
          }
          //PORTC = 0;
                 // 1 kHz sound ON RC0
     }
}
То светодиод сам по себе мигает, да и смысла так нет резистор то у кнопки стягивающий резистор. Мультиметром кнопку проверял, сигнал идет. Как программировать?

Добавлено через 3 минуты
Если так, то светодиод не горит
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void main()
{
     TRISA.F1 = 0; // LED
     TRISA.F0 = 1; // button
     //Sound_Init(&PORTC, 0);      // Init Sound
     while(1)
     {
          PORTA.F1 = 0;
          if (PORTA.F0){
          delay_ms(300);        // Test RA4 keypress
          PORTA.F1 = 1;
          delay_ms(300);
          PORTA.F1 = 0;
          }
          //PORTC = 0;
                 // 1 kHz sound ON RC0
     }
}
Добавлено через 1 минуту
Цитата Сообщение от Kabak Посмотреть сообщение
Нужно писать и читать не port, а конкретный бит в порту

C++
1
PORTAbits.RA1 = 1;
Это провда код для MPLABX , а не MicroC PRO
Так нельзя, ошибка.

Добавлено через 38 секунд
Цитата Сообщение от ValeryS Посмотреть сообщение
Vgorax, не надо листинги приводить скриншотами
правило 5.18

просто напечатайте листинг в тексте сообщения выделяете его и жмете кнопочку "С"(для языка Си) в шапке сообщения
вот так это будет выглядеть
C
1
int main()
или вручную поставьте тэги[CLANG] в начале листинга
и[/ CLANG](пробел не нужен)в конце
вот так
[CLANG]int main() [/CLANG]
Спасибо, учту.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.07.2020, 19:24

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вольтметр на PIC
Вольтметр на PIC16F677 нужна помощь в разработке проекта. Технические характеристики: -Индикация...

Дизассемблер PIC
Есть прошивка на ПИК http://www.obddiag.net/adaptir/obdcan2ec.hex для PIC18F2455 или PIC18F2550,...

PIC+nRF24L01
Необходимо "соединить" PIC-и посредством модулей nRF24L01. Изобретать велосипед или заниматься...

PIC 16F84A
Добрый день, помогите обьясните а то чижу уже 2 недели и не могу разобраться как на контролере...

PIC Uart
Начинаю знакомство с PIC микроконтроллерами. Решил написать программу для работы с UART. Запускаю...

Осваиваю PIC
Решил немного освоить пики. Думаю начать с ситемы команд и архитектуры. Может кто подскажет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.