pekaras Δημοσ. 13 Νοεμβρίου 2011 Δημοσ. 13 Νοεμβρίου 2011 Γεια χαρά... Εχω συνδέσει τον avr stk500 και προσπαθώ μέσω του codevision να γράψω ένα απλό πρόγραμμα το οποίο είναι όταν πατάω ένα switch να ανάβει ένα led, με τον εξής κώδικα: #include <mega8515.h> void main(void) { DDRA=0x00; //eisodos(switch) DDRB=0xff; //exodos(led) while (1) { PINB.0=1; //led if(PINA.0==0){ //switch PINB.0=0; } } } λογικά έχω κάποιο λάθος , αλλά λύση δέ βρίσκω... αν μπορεί κάποιος άς βοηθήσει...
CtrlFreak Δημοσ. 13 Νοεμβρίου 2011 Δημοσ. 13 Νοεμβρίου 2011 Με αυτόν το κώδικα όταν θα πατάς το κουμπί θα σβήνει το led. Λόγο μηχανικών αναπηδήσεων στο κουμπί μπορεί να μην παίρνεις την σωστή είσοδο. Αρχικά έλεγξε την είσοδό σου αν λαμβάνει σήμα με το πάτημα του κουμπιού. Έχεις το PINA.0==0 ίσο με 0 άρα η συνδεσμολογία του κουμπιού πηγαίνει με το πάτημα στην γείωση??? Το πρόγραμμά σου πρέπει να παγώνει στο σημείο ελέγχου για το πάτημα του κουμπιού και να περιμένει. Ίσως με μια else{continue;}
MeTaXaS4 Δημοσ. 13 Νοεμβρίου 2011 Δημοσ. 13 Νοεμβρίου 2011 Ο κωδικας δεν ειναι λαθος γιατι στο αναπτυξιακο που χρησιμοποιεί τα παντα ειναι με αναστροφη λογικη συνδεδεμενα
anakiou Δημοσ. 13 Νοεμβρίου 2011 Δημοσ. 13 Νοεμβρίου 2011 Οι έξοδοι είναι PORTB και με το if δεν θα προλάβεις να δεις τίποτα. > while (1) { PINB.0=1; //led while(PINA.0==0) { //switch PORTB.0=0; } }
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα