Valore bit di variabili char (RISOLTO)

12 Anni 1 Mese fa - 12 Anni 1 Mese fa #1 da shinshi
Valore bit di variabili char (RISOLTO) è stato creato da shinshi

Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.

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

  • shinshi
  • Avatar di shinshi
  • Elite Member
  • Elite Member
Di più
12 Anni 1 Mese fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Valore bit di variabili char

Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 1 Mese fa #3 da shinshi
Risposta da shinshi al topic Re: Valore bit di variabili char
Funziona anche con MPLABX. Grazie mille Mauro.

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

  • shinshi
  • Avatar di shinshi
  • Elite Member
  • Elite Member
Di più
12 Anni 1 Mese fa #4 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Valore bit di variabili char
...perfetto!

Morale della favola:
Bisogna fare attenzione a quando si copia! :)

Saluti,

Mauro
Ringraziano per il messaggio: shinshi

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 1 Mese fa #5 da shinshi
Risposta da shinshi al topic Re: Valore bit di variabili char
chiedo scusa :(
Mi sono lasciato prendere dall'entusiasmo e ho detto che funzionava solo perchè il compilatore non da più l'errore, ma una volta programmato il microcontrollore il risultato mi lascia perplesso.
Con freedom2 ho scritto questo semplice programma:

#include <p18f4550.h>

#pragma config FOSC = HS
#pragma config WDT = OFF
#pragma config LVP = OFF
#pragma config PBADEN = OFF

//OSC = HS Impostato per lavorare ad alta frequenza
//WDT = OFF Disabilito il watchdog timer
//LVP = OFF Disabilito programmazione LVP
//PBADEN = OFF Disabilito gli ingressi analogici
//BIT della variabile reflect
volatile unsigned char REFLECT;
volatile struct {
unsigned R0:1;
unsigned R1:1;
unsigned R2:1;
unsigned R3:1;
unsigned R4:1;
unsigned R5:1;
unsigned R6:1;
unsigned R7:1;
} REFLECTbits;

void main (void){

// Imposto PORTA tutti ingressi
LATA = 0x00;
TRISA = 0xFF;

// Imposto PORTB tutti ingressi
LATB = 0x00;
TRISB = 0xFF;

// Imposto PORTC tutti ingressi
LATC = 0x00;
TRISC = 0xFF;

// Imposto PORTD tutte uscite
LATD = 0x00;
TRISD = 0b00000000;

// Imposto PORTE tutti ingressi
LATE = 0x00;
TRISE = 0xFF;

REFLECT = 0b00000000;

LATDbits.LATD0 = REFLECTbits.R0;
LATDbits.LATD1 = REFLECTbits.R1;
LATDbits.LATD2 = REFLECTbits.R2;
LATDbits.LATD3 = REFLECTbits.R3;
LATDbits.LATD4 = REFLECTbits.R4;
LATDbits.LATD5 = REFLECTbits.R5;
LATDbits.LATD6 = REFLECTbits.R6;
LATDbits.LATD7 = REFLECTbits.R7;


// Ciclo infinito
while (1) {

}

}

Mi aspettavo di vedere tutti i led spenti invece ottengo sempre la stessa sequenza qualsiasi valore scrivo su REFLECT. La sequenza è:
LED8 ON
LED7 OFF
LED6 ON
LED5 OFF
LED4 ON
LED3 ON
LED2 ON
LED1 ON

Quello che vorrei ottenere è di avere una variabile char dove scrivere un valore e poi poter leggere i singoli bit e viceversa scrivere nei singoli bit della variabile e poter leggere il valore della variabile char.

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

  • shinshi
  • Avatar di shinshi
  • Elite Member
  • Elite Member
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

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

Registrati al sito LaurTec.

Login