Вопрос по коду прошивки[работа с кнопкой]

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
O'NeiLL
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Чт сен 05, 2013 18:23:31

Вопрос по коду прошивки[работа с кнопкой]

Сообщение O'NeiLL »

работаю с pic18f452, к нему подключён 4-х разрядный индикатор(подцеплен к PORTB и PORTC). После того как мк стартует на нём светиться 0. По нажатию кнопки(ножка RA0) загорается 1, ещё одно нажатие - 2-ечка. Работаю только 4-м разрядом. Ну принцип думаю ясен.

Моя прошивка:

Код: Выделить всё

#include <p18f252.h>

#pragma config WDT = OFF, WDTPS = 128, OSC = XT, PWRT = ON,LVP = OFF

void main (void){
  int i,j,k=0;
  unsigned char o=0;
  static int a[4];
  static int b[10] = {0b11000000, //0
                      0b11111001,//1
                      0b10100100,//2
                      0b10110000,//3
                      0b10011001,//4
                      0b10010010,//5
                      0b10000010,//6
                      0b11111000,//7
                      0b10000000,//8
                      0b10010000};//9
  TRISC = 0; 
  TRISB = 0;
  TRISA = 0;
  PORTC = 0;
  PORTB = 0b11000000;
  PORTC = 0b00010000;
  PORTA = 0b10111111;
  PORTA = 1; //на вход
  if (PORTA==0b10111111){
    for (i=0;i<255;i++){}
    k=k+1;
    if (k==10){
      k = 0;
    }     
  PORTB = b[k];
  }
}



По нажатию кнопки картинка на индикаторе не меняется, что я делаю не так?
Я ещё новичок в этом
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Вопрос по коду прошивки[работа с кнопкой]

Сообщение Аlex »

Аватара пользователя
WandererSc
Друг Кота
Сообщения: 4077
Зарегистрирован: Вс мар 22, 2009 17:31:41

Re: Вопрос по коду прошивки[работа с кнопкой]

Сообщение WandererSc »

Принцип то ясен, но работа с регистрами контроллера не правильная.

PIC это не AVR и регистры тут называются по другому.

регистр для вывода не PORTB , а LATB.
И ножку на вход надо переключать не "PORTA = 1;" а "TRISA = 0b10000000;"
Раз reset, два reset - полyчи на диске bad !
Тpанзистоp p-n-p. Plug-n-Play ?
У кого что сбоит, тот о том и говорит.
Ответить

Вернуться в «PIC»