Salve a tutti. sono nuovo qui..sto imparando a usare l'ATMEGA128 della ATMEL. Sono in grado di fare robe semplici tipo il lampeggio di un led, all'acquisizione dati dagli ADC, o anche per esempio gestione di motorini passopasso. Ora sto facendo un programma per controllare la temperatura, umidità e anche lo stato di alcune lampadine in casa. La scheda che ho ha anche un display nella quale sono riuscito a far delle schermate con un menu principale.
Ho un problema e ora ve lo spiego:
programma.
if((PINB&0x01)!=0) se il primo pin della porta b viene settato
{
PORTC=0xFF; la porta c si setta tutta a 1
}
if(tasto==1) premo il tasto1, entra nell'if, cancella e poi entra nel ciclo while dove
{ stampa la scirtta nel display. La funzione_tastiera serve per fare in modo che
clrscr(); possa uscire dal ciclo while.
while(tasto==1)
{
disp_str(1,1,"luce casa");
funzione_tastiera;
}
}
if(tasto==2)
{
clrscr(;)
while(tasto==2)
{
disp_str(1,1,"temperatura casa");
funzione_tastiera;
}
}
Questo non è il vero programma però come concetto è quello: io voglio trovare il modo che quando per esempio premo il tasto1 ed entra nel ciclo while, se per caso nella PORTA B, viene settato il bit, la porta C vada tutta a 1. Il mio problema è che mentre è dentro il ciclo se si setta la porta b non succede nulla. e lo capisco cioè si è dentro un ciclo while. Solo che cosa devo fare? Copiare su ogni istruzione tasto l'istruzione per la porta b? non c'è un altro modo??
Grazie spero abbiate capito. In caso contrario chiedete pure..rispondete per favore aiutatemi è importante per me.
Davide