Logica AtmeL
Moderatore:
Paolino
0
voti
[23] Re: Logica AtmeL
non riesco proprio a comprenderlo...
Cosa non ti è chiaro (eventualmente) di questo codice:
- Codice: Seleziona tutto
#include <stdio.h>
int main(void)
{
unsigned char x = 0x00;
x = (1 << 2);
printf("0x%x\n", x);
x = (1 << 1);
printf("0x%x\n", x);
return 0;
}
E di questo:
- Codice: Seleziona tutto
#include <stdio.h>
int main(void)
{
unsigned char x = 0x00;
x |= (1 << 2);
printf("0x%x\n", x);
x |= (1 << 1);
printf("0x%x\n", x);
x |= (1 << 7) | (1 << 5);
printf("0x%x\n", x);
return 0;
}
Penso di si... se intendi sapere il significato di 0 e 1 e le operazione di AND, OR ecc
Se non capisci quei codici allora solo lo pensi. E non è una offesa.. Sto solo cercando di farti capire.
0
voti
[24] Re: Logica AtmeL
Mi sentirei di dire che non mi è chiaro niente a questo punto.
E credo, forse... che voi intendere "logica" binaria diversamente da me... quindi penso che l'AND classico inteso come 1 x 0 = 0 in questa cosa non centri... non ci sto capendo nulla sinceramente.
Ti ringrazio comunque per i tuoi sforzi, forse oggi non è giornata oppure devo maledire il mio prof di sistemi delle superiori che mi fece iniziare con i PIC e di questa roba quà non ci ha fatto vedere nemmeno un H... però forse sto cercando la soluzione nel modo sbagliato o nel posto sbagliato... quello che mi fa strano è che non riesco a trovare un documento che tratti questa roba in modo da essere comprensibile anche a chi non ne sa nulla come me (ormai mi assimilo al non sapere nulla perché tra la confusione che ho fatto e quello che non capisco...)
E credo, forse... che voi intendere "logica" binaria diversamente da me... quindi penso che l'AND classico inteso come 1 x 0 = 0 in questa cosa non centri... non ci sto capendo nulla sinceramente.
Ti ringrazio comunque per i tuoi sforzi, forse oggi non è giornata oppure devo maledire il mio prof di sistemi delle superiori che mi fece iniziare con i PIC e di questa roba quà non ci ha fatto vedere nemmeno un H... però forse sto cercando la soluzione nel modo sbagliato o nel posto sbagliato... quello che mi fa strano è che non riesco a trovare un documento che tratti questa roba in modo da essere comprensibile anche a chi non ne sa nulla come me (ormai mi assimilo al non sapere nulla perché tra la confusione che ho fatto e quello che non capisco...)
0
voti
[25] Re: Logica AtmeL
belva87 ha scritto:l'AND classico inteso come 1 x 0 = 0
Usa gli operatori logici.
1 & 0 = 0
Comunque ho l'impressione che non li hai nemmo compilati ed eseguiti..
non riesco a trovare un documento che tratti questa roba
Uno, due, tre, quattro.
http://www.gnu.org/software/gnu-c-manua ... -Operators
Ne ho trovati a iosa..
0
voti
[26] Re: Logica AtmeL
L'operatore èra per far intendere proprio la scrittura PER .... ma siete sempre così pignoli?
I documenti sono interessanti ma io sto cercando qualcosa di altro genere, che spieghi perché si fanno quelle operazioni per settare un bit di un porta di un micro, e poi che spieghi passo passo come lavorano quelle operazioni dato che nel mondo della programmazione non le so ma sono rimasto alle porte logiche...
Ora lascio perdere, è meglio così.
I documenti sono interessanti ma io sto cercando qualcosa di altro genere, che spieghi perché si fanno quelle operazioni per settare un bit di un porta di un micro, e poi che spieghi passo passo come lavorano quelle operazioni dato che nel mondo della programmazione non le so ma sono rimasto alle porte logiche...
Ora lascio perdere, è meglio così.
0
voti
[27] Re: Logica AtmeL
belva87 ha scritto:che spieghi perché si fanno quelle operazioni per settare un bit di un porta di un micro.
Come detto in precedenza, è solo una questione di comodità.
Tra
1)
- Codice: Seleziona tutto
PORTA = 0x81;
2)
- Codice: Seleziona tutto
#define PA7 7
...
#define PA0 0
...
PORTA = (1 << PA7) | (1 << PA0);
non cambia nulla.
Se non ti ricordi i valori binari a memoria userai il caso 2, altrimenti il caso 1 o come preferisci..
Altrimenti scusa ma non capisco cosa non capisci..
0
voti
[29] Re: Logica AtmeL
Prima ti ho detto di usare gli operatori perché per esempio:
0xa0 & 0xb0 non è come fare 10 x 11..
Brevemente questo:
(0000 0000 | 1000 0000 | 0000 0001) = 1000 0001
So simple.
0xa0 & 0xb0 non è come fare 10 x 11..
Non riesco a capire cosa fa questo:
PORTA = (1 << PA7) | (1 << PA0);
Brevemente questo:
(0000 0000 | 1000 0000 | 0000 0001) = 1000 0001
So simple.
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 18 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)
