D portu giriş çıkışlar saçma sapan davranıyor

Başlatan enigma, 21 Ekim 2021, 23:50:08

enigma

arkadaşlar aşağıdaki kodlar çalıştırdığımda d0 d1......tetikleyemiyorum. tetiklediğimde kendini sıfıra çekiyor. ne negatif ne pozitif etki oluyor. PORTD sadece bir defa yapabiliyorum ikinciye tetik yapamıyorum.. d portuna ait çıkışlar normal değil... nedendir bir türlü işin içinden çıkamadım...
/*
* PIC16F877A  
* ENCODER LCD 
*/

#define _XTAL_FREQ  16000000 
#include <xc.h>
#include <stdint.h>      // degişken türleri 
#include <stdio.h>        // Including C Standard Libraries

// config ayarlar 
#pragma config FOSC = HS        // Oscillator (XT oscillator)

void main(void)
{
    TRISA = 0XFF; PORTA = 0X00; // ALL IN
    TRISB = 0X00; PORTB = 0X00; // ALL OUT 
    TRISC = 0b11001111; PORTC = 0X00; // 0-1-2-3 IN ,4-5 OUT, 6-7 TX RX IN
    TRISD = 0X00; PORTD = 0X00; // ALL OUT 
    TRISE = 0XFF; PORTE = 0X00; // ALL IN 

    ADCON1 = 0X06; // analog pinleri Dijitale dönüşür.
    CMCON = 0x07; // dijital giriş- çıkış oldu

while (1) {
    if (RA0 == 1 ) { RB7 = 1; } else { RB7 = 0; };  // OUT1  
    if (RA1 == 1 ) { RB6 = 1; } else { RB6 = 0; };  // OUT2
    
   if (RE0 == 1 ) { RB1 = 1; } else { RB1 = 0; };  
    if (RE1 == 1 ) { RB0 = 1; } else { RB0 = 0; };    
if( RC1 == 1 ) { RD1 = 1; } else { RD1 = 0; };  
    if (RC2 == 1 ) { RD0 = 1; } else { RD0 = 0; };  
}

} // main



mustafacan

Pull-up yada pull-down direçlerini takıp deneyebilirsin.
Keşfedilecek çok teknoloji var. Boş Vaktim Yok!

enigma

Bunu sadece proteusda deniyorum.. ccs c yaptıgımda sorun olmuyor... peki mplab uzerinden nasıl yapabilirim pul up değerini  pic16f877a mcc destek vermiyor

mehmet

TRISE = 0b00000111;

Zira TRISE 4.bit PSP modunu açıyor.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

enigma

evet memet bey sorunun  kaynağı e portuna verdiğin trise değeri binary
TRISE = 0b111;  yaptım sorun çözüldü.. hex yazdığımda sorun devam ediyor...ama hala anlamadım neden böyle psb modu dediğiniz şey inanın ne olduğunu bilmiyorum. ayrıca bu e portunun veya a portundan tamamı dijital çalışıyor.. bunlardan bir bit örneğin E PORTUNUN SON BITINI (2) ANALOG YAPMAM MUMKUNMU.... yani 0,1, dijital 2 port analog.. bunu nasıl secebilirim... 

mehmet

Register çalışmanız iyi olur.
Her mcunun kataloğunda kullanımları
bulunmakta.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"