Systemy wbudowane 2018 - konsultacje

sw

(Marek Materzok) #1

W tym temacie można zadawać pytania dotyczące wykładu i zadań z przedmiotu “Systemy wbudowane” edycja 2018.


(Karol Kędzierski) #2

Jak powinniśmy odmierzać czas w zadaniu 1 z listy 2?


(Marek Materzok) #3

Dokładnie tak, jak we wcześniejszych zadaniach - używając makra _delay_ms.


(Michał Łazowski) #4

Czy dobrze rozumiem, ze podczas delay mamy wykonywac inne czynnosci? Np podczas reprezentowania wczesniej podanych wcisniec przycisku mamy moc podawac do bufora nowe?
Jesli tak to czy mozna prosic o wskazowke jak mamy obejsc zatrzymanie calego programu?

Czy wcisniecia maja byc reprezentowane na diodzie w takich samych odstepach czasu jak byly podawane?

Czy na podanie wejscia powinien byc okreslony czas czy tez mamy czekac, az od odstatniego wcisniecia uplynie sekunda?


(Marek Materzok) #5
  1. Nie. Jak mówiłem na wykładzie - makro _delay_ms generuje pętlę aktywnego czekania. Wszystkie operacje potrzebne do wykonania zadania 1 z listy 2 należy wykonać pomiędzy opóźnieniami. Opóźnienia powinny być oczywiście istotnie krótsze niż 1 sekunda, ale nie muszą być bardzo krótkie - ludzki czas reakcji z punktu widzenia mikrokontrolera jest bardzo długi!
  2. Tak.
  3. Nie. Program ma działać w czasie rzeczywistym bez trybów pracy.

Myślę, że coś Pan przekomplikowuje. Wzorcowe rozwiązanie zadania jest naprawdę minimalną modyfikacją programu przykładowego “zapalanie diody przyciskiem”. Podpowiedź do zadania praktycznie je rozwiązuje.


(Maciej Dudek) #6

Mam małe pytanie odnośnie przełączników.
Czy powinno być tak, że przełącznik łączy te nóżki co są obok siebie?
To znaczy te bliżej siebie?


(Marek Materzok) #7

Przycisk wpięty w płytkę stykową zwiera razem każdą kolumnę, a włącznik jest pomiędzy kolumnami. Patrz np:


(Maciek Draguła) #8

Na stronie SW na SKOSie w sekcji “Do przeczytania” zarówno w obecnym jak i ubiegłym tygodniu jest rozdział 14 dokumentacji ATmegi. Wydaje mi się, że wspominał Pan, że jeden z nich jest niewłaściwie podany i powinniśmy przeczytać coś innego. Jeśli dobrze pamiętam, to czy mógłby Pan to poprawić?


(Marek Materzok) #9

Rozdział 14 jest ciągle obowiązujący. Dopisałem do pierwszego wykładu rozdziały 2, 7 i 8 jako wprowadzenie do architektury AVR.


(Łukasz Klasiński) #10

W zadaniu pierwszym mamy wczytywać dane z pamięci flash, ale powoduje to znaczące lagi, przez które melodia nie gra jak trzeba. Skoro dostępy do pamięci są takie wolne to co z tym zrobić?


(Marek Materzok) #11

Nie są wolne, instrukcja odczytu bajtu z pamięci flash zajmuje tylko o połowę więcej niż zwykły odczyt z pamięci RAM (3 cykle zamiast dwóch). Takich dostępów trzeba w tym zadaniu wykonać ledwie kilka w ciągu sekundy. Jeśli ma Pan jakiś problem z prawidłowym generowaniem dźwięku, czasy dostępu do pamięci flash na pewno nie są z nim związane.


(Łukasz Klasiński) #12

Ma Pan rację, przez to że miałem zmienne w 16 bitach, ucinał mi część danych i powstawały artefakty