Επιστροφή στο Forum : ΠΡΟΒΛΗΜΑ ΜΕ microbasic code
Παιδιά γειά σας.
Είμαι σχετικά καινούργιος στο forum.
Δουλεύω το αναπτυξιακό της easypic5 με mC τον PIC16f887. Μπορεί να μου πει κάποιος που είναι το λάθος και δεν μου τρέχει το παρακάτω πρόγραμμα;
Έχω ορίσει την PORTA σαν είσοδο και θέλω να την ελέγχει συνέχεια και σε περίπτωση που υπάρξει hi στο πιν 0 της PORTA να μου ανάψει τρία leds στην PORTB.
Ευχαριστώ.
program TEST
dim flag as byte
main:
TRISA = %11111111
TRISB = %00000000
loop1:
PORTB = 0
flag = PORTA
if flag = %00000011
then PORTB = %00000111
else PORTB = %00000000
Delay_ms(1000)
end if
goto loop1
end.
δοκιμασε
if flag.0 =1 then ....
program TEST
dim flag as byte
main:
TRISA = %11111111
TRISB = %00000000
loop1:
PORTB = 0
flag = PORTA
if flag = %00000011
then PORTB = %00000111
else PORTB = %00000000
Delay_ms(1000)
end if
goto loop1
end.
καταρχας δεν βλεπω να εχεις δηλωση τα περι analog ή 0/1channels (δες την μεταβλητη ansel)
και μετα ενα μεγαλο λαθος που κανουν αρκετοι ειναι τι το προγραμμα σου ελενχει ΟΛΑ τα πιν της καθε πορτας... δλδ οταν θες σαν εισοδο ο πικ να διαβασει %00000011 πρεπει να εχεις high τα πιν 0-1 και επισης ομως ολα τα υποληπα γειωμενα με ανστιστασεις... αλλιω θα περνεις τυχαιο διαφορετικο αποτελεσμα παντα μεγαλητερο απο 00000011
Ναι έχεις δίκιο. Ξέχασα να ορίσω με την ansel για ψηφιακό ή αναλογικό.
Οκ. Δούλεψε.
Thanks.
ξεχασα να πω οτι αυτο που τονισα με κοκκινα γραμματα ειναι παντελος αχριστο
καταρχας δεν βλεπω να εχεις δηλωση τα περι analog ή 0/1channels (δες την μεταβλητη ansel)
και μετα ενα μεγαλο λαθος που κανουν αρκετοι ειναι τι το προγραμμα σου ελενχει ΟΛΑ τα πιν της καθε πορτας... δλδ οταν θες σαν εισοδο ο πικ να διαβασει %00000011 πρεπει να εχεις high τα πιν 0-1 και επισης ομως ολα τα υποληπα γειωμενα με ανστιστασεις... αλλιω θα περνεις τυχαιο διαφορετικο αποτελεσμα παντα μεγαλητερο απο 00000011
όλα πολύ σωστά !!!
έχεις γίνει Γάτος , Μπράβο !!!!=D>
program TEST
dim flag as byte
main:
TRISA = %11111111
TRISB = %00000000
loop1:
PORTB = 0
flag = PORTA
if flag = %00000011
then PORTB = %00000111
else PORTB = %00000000
Delay_ms(1000)
end if
goto loop1
end.
καταρχας δεν βλεπω να εχεις δηλωση τα περι analog ή 0/1channels (δες την μεταβλητη ansel)
Που είναι αυτή η μεταβλητή ρε παιδιά και εγώ έχω στραβομάρα :blink:και δεν την βλέπω;
Να μαθαίνουμε σιγά σιγά και εμείς :blush:
H ansel είναι εσωτερική μεταβλητή του μικροελεγκτή. Αν δεις το datasheet, θα την βρείς μέσα, όπως επίσης και τι κάνει κάθε bit της :wiink:
όλα πολύ σωστά !!!
έχεις γίνει Γάτος , Μπράβο !!!!=D>
χαθηκες δασκαλε :001_smile: καλα εισαι?
ασε μου εχουν ληψει ολα αυτα ... αλλα τωρα ετοιμαζω 2-3 πραγματακια
θα τα δειτε μετα τις γιορτες
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions Inc. All rights reserved.