czas trwania cyklu maszynowego

0

Witam
Czy potrafiłby ktoś wytłumaczyć mi co to cykl maszynowy ,ile czasu on trwa i jak napisać program w assemblerze jeżeli mamy mikrokontroler podłączony do diody i chcemy żeby ona się świeciła z częstotliwością 10 Hz

1

1.Najpierw wchodzisz w Google i wpisujesz to, czego szukasz.
2.Upewniasz się 50 razy, że nie ma nic pożytecznego.
3.Dopiero wtedy masz prawo przyjść na forum.

0

Z tym się jak najbardziej zgadzam, chodzi o to, że nie do końca jestem pewien . Proszę w takim razie sprawdzić moje rozumowanie. Czas trwania cyklu maszynowego w każdym mikroprocesorze jest inny, bo zależy od zastosowanego kwarcu, więc żeby napisać program przy pomocy którego dioda podłączona do mikroprocesora będzie się świeciła 10 razy na sekundę ja po pierwsze muszę założyć ile trwa cykl maszynowy w moim mikroprocesorze,zakładam że na przykład 0.5 milisekundy. Dalej nie do końca rozumiem to co było powiedziane do mnie,że dioda ma się świecić 10 razy na sekundę albo 50 milisekund,że niby to jest to samo i właśnie nie wiem jak z tym jest, ale z tego co rozumiem to żeby dioda świeciła się 50 ms to muszę zrobić taką pętlę opóźniającą która będzie trwała 100 cykli maszynowych,czy dobrze to rozumuję?

1

nie do końca rozumiem to co było powiedziane do mnie,że dioda ma się świecić 10 razy na sekundę albo 50 milisekund,że niby to jest to samo

Sekunda ma 1000 milisekund.
Więc jeżeli coś się świeci 50 milisekund i gaśnie na 50 milisekund, to siłą rzeczy świeci 10 razy na sekundę.

A co do cykli - zależy od procesora. Nie zawsze jest tak, że jeden cykl maszynowy to jeden impuls zegara.

0

A czy ktoś potrafiłby wytłumaczyć albo podać przykład jak robimy podobne zadania z timerem. Wiem że timer zlicza cykle maszynowe może zaczynać je liczyć od podanych przez nas wartości początkowych ale właściwie nie do końca rozumiem jak to działa,jeżeli chcemy na przykład zrobić żeby dioda 1s świeciła i 1 s przerwanie to jak to z timerem można zrobić?

2

Długość trwania cyklu maszynowego jest odwrotnością taktowania procesora.

1 Hz = 1 / s

Jeśli procesor jest taktowany 100 Hz to takt trwa 0.01 s.

Problem w tym, że od wielu lat procesory mają zmienne taktowanie, np przy bezczynności taktowanie zmniejsza się wielokrotnie, a dodatkowo procesory mają tryb turbo, który włączają sobie jak chcą (głównie bazując na aktualnej temperaturze).

0

innymi słowy - zależy na jaki procesor piszesz
ogólnie to nie powinieneś się sugerować cyklami maszynowymi tylko zegarem zewnętrznym

0

Jeśli chcesz odmierzyć 10 * X, a twój timer pozwala tylko odmierzać X to możesz odmierzyć X w pętli z 10-ma iteracjami.

1 użytkowników online, w tym zalogowanych: 0, gości: 1