Ώρα

A

amitdandyan

Guest
Έχω αναπτύξει το παρακάτω πρόγραμμα να λάμπει ένα LED συνδέεται με την πρώτη pin του ΛΙΜΑΝΙ Β και χρησιμοποιούν Μικρό Γ. .. τώρα το πρόβλημα είναι πώς μπορώ να δώσει αξία καθυστέρηση, π.χ. 250us κλπ. ..????unsigned short i?

κενό κύριο ()
(
TRISB = 0?
PORTB = 0x00?
USART_init (9600)? / / Initialize USART ενότητας
/ / (8 bit, 19200 ρυθμός baud, δεν bit ισοτιμίας ...)
while (1)
(
if (USART_Data_Ready ()) / / αν τα δεδομένα έχει λάβει
(
i = USART_Read ()? / / διάβαζε τα λάβει δεδομένα
USART_Write (i)? / / Αποστολή δεδομένων μέσω USART
PORTB = 0x01?
Delay_ms ( 'i')?
PORTB = 0x00?
)
)
)

 
u έχω κάνει αυτό πολύ που σημαίνει u γνωρίζω τον προγραμματισμό, τη μια πολύ απλό πράγμα

είτε να χρησιμοποιήσετε μια απλή για την καθυστέρηση βρόχο
ή ο χρονοδιακόπτης χρήση

 
Thanx Κύριε, αλλά αυτό που θέλω να ρωτήσω είναι το πώς μπορώ να δώσει φυσικά μια τιμή για "π.χ. θ '.250 ή 100 κ.λπ. Για παράδειγμα, να συνδέσω μια LED στο λιμάνι Β και θέλω να αλλάξετε το χρόνο της αίγλης του LED ... έτσι πρέπει να δίνουν διαφορετικές τιμές του «i'.... Πως μπορώ να δώσω αυτές τιμές χρησιμοποιώντας πληκτρολογίου???

Εάν έχετε χρησιμοποιήσει Μικρό C, στη συνέχεια, παρακαλώ επιτρέψτε μου να γνωρίζουν πώς να χρησιμοποιήσουν USART τερματικό του για την ανακοίνωση ....

Αναμονή για την απάντησή σας ........

 
Θα ήθελα να διευκρινίσει τις ερωτήσεις σας.Σας ζητούμε πώς να υπολογίζουν για τη συνεχή φορά OFF του ρολογιού ...?

 
Delay_ms ( 'i')? ???????

ίσως Delay_ms (i)?

ή δηλώνουν ότι ίσως;;;

void main (void) (
int i?
...

i = 250?
...
Delay_ms (i)?
...ή απλά Delay_ms (250)?

ίσως mikroC έχει κάτι σαν Delay_us (250)? για μικροδευτερόλεπτα;;;(Delay_ms θα πρέπει να είναι σε miliseconds)

 
char y?
int x?
κενό κύριο ()
(TRISA = 0? porta = 0?usart_init (9600)?
για το (?

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />(if (usart_data_ready ())
(y = USART_Read ()?
usart_write (y)?
PORTa.f0 = 1?
x = y-48?
x = x * 1000?
vdelay_ms (x)?
porta.f0 = 0?

)
)
)

αυτόν τον κώδικα θα λειτουργήσει
αλλά η έξοδος είναι porta.f0
και ο χρόνος θα είναι μεταβλητό
από
1 - 9 sec

μπορείτε να αλλάξετε x = x * 1000 να
x = x * 10000?
και ο χρόνος θα είναι μεταβλητό
από
10 με 90 δευτερόλεπτα

 
thanx loin .... bt Έχω μία ερώτηση ... γιατί Cann't Delay_ms χρήση () αντί για vdelay_ms (x )?????

 
δεδομένου ότι delay_ms ()? χρησιμοποιείται μόνο με
μια σταθερή τιμή, αλλά vdelay_ms ()? μπορεί να χρησιμοποιηθεί
με τις μεταβλητές
αλλά μπορείτε να χρησιμοποιήσετε delay_ms ()? να έχει μια μεταβλητή καθυστέρηση
αλλά δεν με άμεσο τρόπο

 
man thanx ..... plz επίσης να εξηγούν το έμμεσο τρόπο χρήσης delay_ms (x)?

 
char y?
int x, n?
κενό κύριο ()
(TRISA = 0? porta = 0?usart_init (9600)?
για το (?

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />(if (usart_data_ready ())
(y = USART_Read ()?
usart_write (y)?
PORTa.f0 = 1?
x = y-48?

για n = (0? n <x? ν )
(delay_ms (1000)?)
porta.f0 = 0?

)
)
)
αυτός ο κώδικας δείχνει πώς μπορείτε να χρησιμοποιήσετε delay_ms ()?
να κάνω μια μεταβλητή καθυστέρηση

χαιρετισμοί

 

Welcome to EDABoard.com

Sponsor

Back
Top