Mi sono dato la zappa sui piedi

12 Anni 2 Mesi fa #1 da Tecnica
Mi sono dato la zappa sui piedi è stato creato da Tecnica
Buongiorno a tutti... da qualche tempo mi cimento con la programmazione del pic in particolare dal p18f2550
Ho già effettuato i classici esperimenti e ho postato anche già qualcosa sul forum per avere aiuti.
Ieri mi sono detto "ma si rifaccio la mia scheda perchè devo andare avanti a studiare." quindi mi sono messo e l'ho rifatta cambiando qualcosa, ora vi spiego cosa....
Nella basetta precedente avevo collegato dei pulsanti sulla PORTA e dei led sulla PORTB e tutto funzionava.
A sto giro ho pensato di risparmiare delle resistenze quindi ho invertito i collegamenti spostando i pulsanti su PORTB e i led su PORTA potendo sfruttare cosi le resistenze di pull UP interne al pic, beh non funziona più, ovvero il led si accende e rimane acceso e il pulsante non da alcun segnale.
Ho visto che i pulsanti cosi configurati vanno collegati direttamente al pin e a massa senza resistenza,
ragazzi io vi posto anche il codice perchè magari ometto qualcosa o sbaglio proprio.
Grazie


#include <p18f2550.h>
#pragma config FOSC = HSPLL_HS
#pragma config IESO= ON
#pragma config WDT = OFF
#pragma config LVP = OFF
#pragma config PBADEN = OFF


//OSC = HSPLL_HS Impostato per lavorare ad alta frequenza CON PLL ATTIVATO
//PLL = attivato la divisione
//WDT = OFF Disabilito il watchdog timer
//LVP = OFF Disabilito programmazione LVP
//PBADEN = OFF Disabilito gli ingressi analogici


void main (void){
EnablePullups ();


// Imposto PORTA tutti uscite
TRISA = 0b00000000;
PORTA = 0b00000000;

// Imposto PORTB tutti ingressi
TRISB = 0b11111111;
PORTB = 0b11111111;



// Imposto PORTC tutti uscite
TRISC = 0b00000000;
PORTC = 0b00000000;

if(PORTBbits.RB2==1){
PORTAbits.RA2=0;
}
else{PORTAbits.RA1=1;}
while (1){

}
}

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Tecnica
  • Visitatori
  • Visitatori
12 Anni 2 Mesi fa - 12 Anni 2 Mesi fa #2 da shinshi
Risposta da shinshi al topic Re: Mi sono dato la zappa sui piedi
Manca:
#include <portb.h>
Inoltre con il while messo li il controllo viene effettuato solo la prima volta poi il programma si blocca in un loop infinito.
Ultima Modifica 12 Anni 2 Mesi fa da shinshi.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • shinshi
  • Avatar di shinshi
  • Elite Member
  • Elite Member
Di più
12 Anni 2 Mesi fa #3 da Tecnica
Risposta da Tecnica al topic Re: Mi sono dato la zappa sui piedi
Eh veramente dopo l'ho incluso portb.h e while l'ho usato mettendo al suo interno la funzione if e ho fatto anche un conteggio fittizio ma nulla da fare....
Mi sa che devo smontarla e fare un pezzo per volta...

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Tecnica
  • Visitatori
  • Visitatori
12 Anni 2 Mesi fa #4 da Tecnica
Risposta da Tecnica al topic Re: Mi sono dato la zappa sui piedi
adesso dopo aver scollegato quasi tutto e lasciato solo un pulsante e un led funziona ma il led come avvicino la mano al pulsante si illumina un pò, poi premo e lui si illumina bene.
se alzo la basetta il led man mano che sale si illumina sempre di più....
Il led è collegato verso massa perciò in source mode.
se lo collego verso positivo in sink mode funziona ma al contrario ovvero è subito acceso e premo il pulsante si spegne.
Qualcuno sà spiegarmi????
RI posto il codice


#include <p18f2550.h>
#include <portb.h>
#pragma config FOSC = HSPLL_HS
#pragma config IESO= ON
#pragma config WDT = OFF
#pragma config LVP = OFF
#pragma config PBADEN = OFF


//OSC = HSPLL_HS Impostato per lavorare ad alta frequenza CON PLL ATTIVATO
//PLL = attivato la divisione
//WDT = OFF Disabilito il watchdog timer
//LVP = OFF Disabilito programmazione LVP
//PBADEN = OFF Disabilito gli ingressi analogici




void main (void){



// Imposto PORTA tutti uscite
TRISA = 0b1111101;

// Imposto PORTB tutti ingressi
TRISB = 0b11111111;
INTCON2bits.RBPU=0b11111111;



// Imposto PORTC tutti uscite
TRISC = 0b0000000;


while (1){

if(PORTBbits.RB0==1){
PORTAbits.RA1=0;
}
else{PORTAbits.RA1=1;}
}
}

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Tecnica
  • Visitatori
  • Visitatori
12 Anni 2 Mesi fa #5 da Tecnica
Risposta da Tecnica al topic Re: Mi sono dato la zappa sui piedi
ok ho smontato tutto è rimasto collegato il pulsante di reset il pulsante per il led e il led....
Morale.... led a massa accendo il pic il led è acceso, premo il pulsante il led si spegne....
non dovrebbe essere al contrario??????

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Tecnica
  • Visitatori
  • Visitatori
Moderatori: Mauro LaurentiMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login