- Messaggi: 14
- Ringraziamenti ricevuti 0
MSP430, Microcontrollori 16 bit Ultra Low Power
Una base , ma base-base
- simoblack
- Autore della discussione
- Nuovo Utente
-
Less
Di più
6 Anni 11 Mesi fa - 6 Anni 11 Mesi fa #6
da simoblack
Risposta da simoblack al topic Una base , ma base-base
Ok, per ora non ne capisco l'utilità, ma faccio come dici
il risultato non cambia...
Code:
#include <msp430.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
P2DIR |= 0x06; // Set P2.1 and P2.2 to output direction
P2OUT &= ~(0x06); // set P2.1 and P2.2 to 0 (LED OFF)
while (1){
if (P1IN & 0x40){
P2OUT = 0x02 + ~0x4;} //se premo il pulsante collegato al "BIT6" si accende il Led1 e lascia il 2 in off
else
P2OUT &= ~(0x06); //altrimenti led1 e led2 in off
}
}
Ultima Modifica 6 Anni 11 Mesi fa da simoblack.
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Cosimix
-
- Elit Utente
-
Less
Di più
- Messaggi: 198
- Ringraziamenti ricevuti 26
6 Anni 11 Mesi fa #7
da Cosimix
Risposta da Cosimix al topic Una base , ma base-base
Una curiosità.. prova il seguente codice:
Funziona correttamente secondo quanto riportato nei commenti?
Saluti,
Cosimo
Code:
#include <msp430.h>
void main(void) {
WDTCTL = WDTPW | WDTHOLD; // Disabilito il chiwawa
P2DIR |= BIT1; // Il BIT1 è un output
while(1)
{
if(P1IN & BIT6)
P2OUT |= BIT1; // Il led si accende alla pressione del pulsante
else
P2OUT &= ~BIT1; // Il led è spento quando il pulsante è a riposo (aperto)
}
}
Saluti,
Cosimo
Si prega Accesso o Crea un account a partecipare alla conversazione.
- simoblack
- Autore della discussione
- Nuovo Utente
-
Less
Di più
- Messaggi: 14
- Ringraziamenti ricevuti 0
6 Anni 11 Mesi fa #8
da simoblack
Risposta da simoblack al topic Una base , ma base-base
Ciao Cosimix! Ho provato il tuo code e funziona come commentato, anche se avevo già fatto qualcosa di simile facendo accendere e spegnere insieme i due led ed anche in quel caso funzionava correttamente...
Si prega Accesso o Crea un account a partecipare alla conversazione.
- simoblack
- Autore della discussione
- Nuovo Utente
-
Less
Di più
- Messaggi: 14
- Ringraziamenti ricevuti 0
6 Anni 11 Mesi fa #9
da simoblack
Risposta da simoblack al topic Una base , ma base-base
Scoperto l'arcano, il problema era nella basetta di sviluppo (dico così per giustificare il fatto che sono ottuso). I Led erano collegati con l'anodo ai pins del micro, mettendo dei led esterni ed negando il pulsante (che ha una resistenza in pull-up e non, come avevo detto prima, in pull-down) funziona tutto. Modificando il codice in virtù di queste "scoperte" funziona tutto. Il codice funzionante è il seguente:
Code:
#include <msp430.h>
#define button (P1IN & BIT6)
void main(void) {
WDTCTL = WDTPW | WDTHOLD; // Disabilito il chiwawa
P2DIR |= BIT1 + BIT2; // Il BIT1 e BIT2 sono un output
P2OUT &= (BIT1 + BIT2); // Metto i pin a livello alto (i led hanno l'anodo sui pin)
while(1)
{
if(!button){ // Se premo Nego il pulsante che ha la resistenza di PULL-UP
P2OUT = (!BIT1 + BIT2) ;} // Metti il BIT1 in LOW e il BIT2 in HIGH
else
P2OUT = BIT1 + BIT2 ; // Altrimenti entrambi in HIGH
}
}
Si prega Accesso o Crea un account a partecipare alla conversazione.
6 Anni 11 Mesi fa #10
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Una base , ma base-base
Grazie della conferma.
Lo schema elettrico non è da sottovalutare!
Questa scottatura aiuterà per le prossime difficoltà.
Saluti,
Mauro
Lo schema elettrico non è da sottovalutare!
Questa scottatura aiuterà per le prossime difficoltà.
Saluti,
Mauro
Si prega Accesso o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.
Forum - Ultimi messaggi
-
- progetto can
- da marcelloraja
-
- MODULO GSM SIM900A
- da Mauro Laurenti
-
- Freedom III e compilazioni fallite
- da Mauro Laurenti
-
- Gestione degli errori su comunicazione seriale
- da Mauro Laurenti
-
- Timer0 e interrupt
- da Mauro Laurenti