Επιστροφή στο Forum : εισοδος/εξοδος σε μc
ξερει καποιος να μου πει αν σε εναν επεξεργαστη μπορω να κανω τα ποδια της μιας πορτας εισοδο/εξοδο μαζι???δλδ.οταν παρει μια εντολη πχ το pb5 το ιδιο ποδι να μου αναψει ενα led.και αυτο να γινεται σε ολη την portb.μπορει καποιος να με βοηθησει σε αυτο?ελπιζω να μην ειπα καμια βλακεια.....
Γίνεται. Πρώτα κάνεις το pin είσοδο και ελέγχεις αν είναι '1' ή '0' και μετά το κάνεις έξοδο κα ανάλογα με την είσοδο που πήρε ανάβει ή σβήνει το led.
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011019
Βάλε και μία αντίσταση (πχ 4K7) μεταξύ της εισόδου του μικροελεγκτή και της εξόδου του εξαρτήματος που δίνει την εντολή (πχ Button) ώστε αν ενεργοποιηθεί το button την ώρα που χρησιμοποιείται το pin σαν έξοδο να μην δημιουργηθεί "βραχυκύκλωμα" που μπορεί να κάνει ζημιά στο μικροελεγκτή.
για να γεινω λιγο πιο σαφης στην portb θα εχω 8 led τα οποια θα ειναι σβηστα.τωρα οταν δοσω ενα πλιν στο ποδι που ειναι το πρωτο led
και το παρω να μεινει το led αναμενο ομοιως και τα υπολοιπα.στην σελιδα που μου εδωσες δεν βρηκα κατι παρομοιο..
Αυτό θα το κάνεις στον κώδικα. Αν πάρει '0' τότε θα μείνει αναμμένο αν ξαναπάρει '0' τότε θα σβήσει ή ότι άλλο θέλεις. Με ποιον μικροελεγκτή θέλεις να το κάνεις?
αρα γινεται .ωραια για να μην προσπαθω αδικα.με τον ατ90s1200 το χερω οτι εχει καταργηθει αλλα εχω αρκετους
Βασικά πρέπει ανα τακτά χρονικά διαστήματα να γίνεται το πιν είσοδος (θα σβήνει το led σε αυτό τον χρόνο) να διαβάζεις την κατάσταση του πιν, και όταν αφεθεί τοπ button να το ξανακάνεις έξοδο και να πράξεις αναλόγως.
θέλει λίγο ψάξιμο με το led και το button στο ίδιο πιν πάντως πρόσεξέτο μην είναι έξοδος και το βραχυκυκλώνεις με το button. βάλε μια αντίσταση σε σειρά με το button όπως λέει κι ο φίλος απο πάνω
το εφτιαξα!!!οταν περνει - μενει αναμενο το led και οταν του δοσω + σβηνει.σας ευχαρηστω για τισ πληροφοριες.ξερετε να μου πειτε ποσ οταν μεινει αναμενο για 10sec να σβηνει μονο του???
Κάνε ενα interupt με τον timer και όταν περάσουν 10 sec θα κάνει όλη την πόρτα 0x00 και θα σβήνουν όλα. Αν θές για κάθε Pin ξεχωριστά τότε θέλει λίγο περισσότερο κώδικα.
φιλε θωμα σε ευχαρηστω αλλα μηπως μπορεις να μου το εξηγησεις περισοτερο αυτο γιατι τωρα αρχησα να φτιαχνω τετοια μικρα προγραματακια και δεν καταλαβα αυτο που ειπες
Διάβασε το datasheet το 90S1200 και θα καταλάβεις.
χρησημοποιω το εσωτερικο ρολοι εχει καμια σημασια??με τον κωδικα δεν μπορω να το κανω?
χρησημοποιω το εσωτερικο ρολοι εχει καμια σημασια??
Όχι. Διάβασε για τις διακοπές ή interupts απο το datasheet και ψάξε και στο google.
τελικα δεν τα καταφερα αλλα θα το αφισω για αργοτερα..τωρα προσπαθω οταν δει πχ το pb5 kai to pd3 ΄1΄να μου βγαλει μια εχοδο στο pd1.μπορει να βοηθησει καποιος σε αυτο?2 μερες τωρα το προσπαθω αλλα τιποτα
τελικα δεν τα καταφερα αλλα θα το αφισω για αργοτερα..τωρα προσπαθω οταν δει πχ το pb5 kai to pd3 ΄1΄να μου βγαλει μια εχοδο στο pd1.μπορει να βοηθησει καποιος σε αυτο?2 μερες τωρα το προσπαθω αλλα τιποτα
Να ηταν για pic να σε βοηθουσα.
electronic
05-06-07, 22:36
Αν θέλεις μπορείς να χρησιμοποιήσεις μέσα από τον κώδικα ένα τιμερ λοοπ το οποίο να ελέγχει συνέχεια την κατάσταση των πιν που σε ενδιαφέρουν. Μέσα από το λοοπ θα βγαίνει μόνο όταν έχεις τις καταστάσεις που θέλεις οπότε αμέσος μετά θα αλλάζεις και κατάσταση στο πιν1. Όντος με τον PIC είναι ποιο εύκολο. Διάβασε το manual του mcu που έχεις και αν ξέρεις απο προγραματισμό τότε θα τα καταφέρεις...
Φιλικά
Γιώργος
τελικα δεν τα καταφερα αλλα θα το αφισω για αργοτερα..τωρα προσπαθω οταν δει πχ το pb5 kai to pd3 ΄1΄να μου βγαλει μια εχοδο στο pd1.μπορει να βοηθησει καποιος σε αυτο?2 μερες τωρα το προσπαθω αλλα τιποτα
σας ευχαρηστω προσφατα αρχισα να ασχολουμε και φτιαχνω μικρα προγραματακια για να μαθω εχω και το βιβλιο προγραμματιζοντας με τον avr.αλλα καποιες εντολες δεν τισ εχει αναλιτικα με παραδειγματα και δισκολευομαι... :roll: :roll:
τελικα δεν τα καταφερα αλλα θα το αφισω για αργοτερα..τωρα προσπαθω οταν δει πχ το pb5 kai to pd3 ΄1΄να μου βγαλει μια εχοδο στο pd1.μπορει να βοηθησει καποιος σε αυτο?2 μερες τωρα το προσπαθω αλλα τιποτα
portb = %11110111
loop:
if portb.1 = 1 and portb.2 = 1 then
portb.3 = 1
else
portb.3 = 0
endif
goto loop
φιλε νικο σε ευχαρηστω αυτο ειναι σε c?γιατι εγς γραφω se asemply ο ατ90σ1200 μου ειπαν οτι μονο με ασεμπλυ προγραματιζεται
φιλε νικο σε ευχαρηστω αυτο ειναι σε c?γιατι εγς γραφω se asemply ο ατ90σ1200 μου ειπαν οτι μονο με ασεμπλυ προγραματιζεται
Ειναι σε picbasic
Αφού έχεις το βιβλίο προγραμματίζοντας τον μικροελεγκτή AVR αν το διάβαζες καλύτερα θα έβρισκες παρόμοιο πρόγραμμα μέσα. Τα βασικά κι εγώ από κει τα έμαθα. Τέλος πάντων σου στέλνω αυτό το πρόγραμμα που είπες ότι δεν μπορείς να κάνεις.
οπως ειπα εχω το προγραματιζοντας τον avr.ξερει καπιος που το χει να μου πει αν ολες οι εντολεσ που χει μεσα ισχιουν και για την c?παντοσ η asemply μου φανηκε αρκετα δισκολη :twisted: .
#include <avr> // header file
int main(void) // program starts here
{
DDRB |=1<<PORTB0;
DDRB |=1<<PORTB1;
DDRB |=0<<PORTB2;
DDRB |=1<<PORTB3;
DDRB |=0<<PORTB4;
DDRB |=0<<PORTB5;
DDRB |=0<<PORTB6;
DDRB |=0<<PORTB7;
if (PORTB2<<1)
{PORTB3<<0;}
return (0);
}
αυτο δεν ειναι σωστο?γιατι μου το κανει compile αλλα στιν πραξη δεν εκτελει την συναρτηση.υπαρχει καπιο λαθος?
Αυτό που γράφεις δεν κάνει τίποτα. Το σωστό είναι έτσι:
#include<avr>
void main(void)
{
DDRB = 0X0B;
while(1)
{
if(PINB.2 == 1)
{
PORTB ^=0x08;
}
}
}
Ποιόν compiler χρησιμοποιείς? Όσο για το βιβλία αυτό δεν είναι? http://www.papasotiriou.gr/product.ebook.asp?pfid=338864&prid=27289 (Ελληνική έκδοση όμως)
σε ευχαρηστω!μπορεισ να μου γραπσεισ λιγο για νατο καταλαβω.πος θα γραπσουμε την πορτα β τα ποδια απο 0123.εισοδους και τα 4567 εξοδουσ .μονο αυτο να μην κανει τιποτα αλλο. το βιβλιο αυτο ειναι αλλα υπαρχει και μεταφρασμενο!!!!!!!
DDRB= 0xF0; δηλαδή 1111000 στο δυαδικό. Όπου είναι 1 είναι έξοδος και όπου 0 είσοδος. Το βιβλίο το μεταφρασμένο εννοώ και έχει λίγα πράγματα για C.
ναι δυστηχως εχει πολι λιγα για c!με το avr studio δουλευω.μου βγαζει ερρορ στον κωδικα που μου εστειλεσ :roll:
Βάλε αυτά στην αρχή του προγράμματος αντι για #include<avr>
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions Inc. All rights reserved.