Перейти к содержанию

Pic16f1826 не реагирует на входной сигнал на RA5 при Upwr +5В, а при Upwr 3...4,5В реагирует, почему?

// CONFIG1
#pragma config FEXTOSC = OFF // FEXTOSC External Oscillator mode Selection bits (Oscillator not enabled)
#pragma config RSTOSC = HFINT1 // Power-up default value for COSC bits (HFINTOSC (1MHz))
#pragma config CLKOUTEN = OFF // Clock Out Enable bit (CLKOUT function is disabled)
#pragma config CSWEN = ON // Clock Switch Enable bit (The NOSC and NDIV bits cannot be changed by user software)
#pragma config FCMEN = ON // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is enabled)
// CONFIG2
#pragma config MCLRE = ON // Master Clear Enable bit (MCLR/VPP pin function is MCLR; Weak pull-up enabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config WDTE = SWDTEN // Watchdog Timer Enable bits (WDT controlled by the SWDTEN bit in the WDTCON register)
#pragma config LPBOREN = OFF // Low-power BOR enable bit (ULPBOR disabled)
#pragma config BOREN = ON // Brown-out Reset Enable bits (Brown-out Reset enabled, SBOREN bit ignored)
#pragma config BORV = LOW // Brown-out Reset Voltage selection bit (Brown-out voltage (Vbor) set to 2.45V)
#pragma config PPS1WAY = ON // PPSLOCK bit One-Way Set Enable bit (The PPSLOCK bit can be cleared and set only once; PPS registers remain locked after one clear/set cycle)
#pragma config STVREN = ON // Stack Overflow/Underflow Reset Enable bit (Stack Overflow or Underflow will cause a Reset)
#pragma config DEBUG = OFF // Debugger enable bit (Background debugger disabled)
// CONFIG3
#pragma config WRT = OFF // User NVM self-write protection bits (Write protection off)
#pragma config LVP = ON // Low Voltage Programming Enable bit (Low Voltage programming enabled. MCLR/VPP pin function is MCLR. MCLRE configuration bit is ignored.)
// CONFIG4
#pragma config CP = OFF // User NVM Program Memory Code Protection bit (User NVM code protection disabled)
#pragma config CPD = OFF // Data NVM Memory Code Protection bit (Data NVM code protection disabled)

#include <stdio.h>
#include <stdlib.h>

#include <pic16f18326.h>
#include <xc.h>

#define bOn PORTAbits.RA5 //
unsigned char ucFSMstend=0;

void initSystem(void)
{ OSCCON1 = 0b01100000; OSCFRQ = 0b00000111; // 32 MHz //OSCFRQ = 0b00000110; // 16 MHz //OSCFRQ = 0b00000100; // 8 MHz
TRISAbits.TRISA0 = 0; //out8
TRISAbits.TRISA1 = 0; //out7
TRISAbits.TRISA2 = 0; //out6/ /TRISAbits.TRISA3 = 1; //
TRISAbits.TRISA4 = 1; // RA4 - input OldDischarge(reserv))
TRISAbits.TRISA5 = 1; // RA5 - input OnChargFire
ANSELA = 0b00000000; // all RA - digit pins
TRISCbits.TRISC0 = 0; // out5
TRISCbits.TRISC1 = 0; // out4
TRISCbits.TRISC2 = 0; // out3
TRISCbits.TRISC3 = 0; // out2
TRISCbits.TRISC4 = 0; // out1
TRISCbits.TRISC5 = 0; // out redy
ANSELC = 0x00;
WDTCON = 0b00001110; // Watchdog interval 128 ms, watchdog OFF
WDTCONbits.SWDTEN = 1; // Watchdog ON
}

int main(int argc, char** argv) {
initSystem();

while(1){
if(bOn)
LATC=0xFF;
else
LATC=0x00;
asm("clrwdt");
}// for test

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Вероятно уровень "1" входного сигнала низкий и при питании 4 вольта он определяется как 1 а при питании 5 вольт это еще ноль.
Входные уровни PIC
Input High Voltage
I/O ports with TTL buffer
2.0V 4.5V<VDD<5.5V
0.25 VDD +0.8V 1.8V<VDD<4.5V

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Driver_GV @ May 10 2018, 09:10) <{POST_SNAPBACK}>
Вероятно уровень "1" входного сигнала низкий и при питании 4 вольта он определяется как 1 а при питании 5 вольт это еще ноль.
Входные уровни PIC
Input High Voltage
I/O ports with TTL buffer
2.0V 4.5V<VDD<5.5V
0.25 VDD +0.8V 1.8V<VDD<4.5V

Большое спасибо, коллега, Вы абсолютно правы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация