Bawię się USART'em na F0 przesyłając między dwoma prockami testowy bajt, Wszystko mi działa, ale nie mogę dojść, dlaczego muszę wprowadzać po wysłaniu danych do drugiego procka delaya(?). Bez niego testowe echo nie działa prawidłowo. Obecnie mam przebiegi jak na poniższym zdjęciu (transmisja bardzo wolna póki co):
Gdzie kanał 0 i 2 to crossy TX/RX procków, kanał 1 clock, a kanały 3 i 4 to zapalenie diodki kontrolnie.
Czy flaga od pustego bufora nadawczego nie pojawia się nieco wcześniej zanim ostatnie bity z bajtu zostaną 'wypchnięte' ?
Drugiej rzeczy jakiej nie rozumiem, to dlaczego układ, który odbiera dane musi mieć wyłączony bit od nadawania zegara na pinie z peryferium USART_CLK? Stąd moje dwie funkcje 'init_to_transmit/receive' w której w(y)łączam clocka, ponieważ włączone CLK po obu stronach nie działa. Przeczy to idei szybszej transmisji wykorzystując zegar i omijając bity startu/stopu/parity itd. Docelowo chcę to zrobić na różnicówce gdzie będzie jeden master oraz kilka slave. Chcę też wykorzystać adresowanie, które jest w tym peryferium wpisując do tych rejestrów ich 'unique id' lecz to trochę później.
Program:
Prosiłbym o wskazówki, nie gotowe rozwiązanie, więcej się nauczę, tylko już mi się pomysły skończyły.
Gdzie kanał 0 i 2 to crossy TX/RX procków, kanał 1 clock, a kanały 3 i 4 to zapalenie diodki kontrolnie.
Czy flaga od pustego bufora nadawczego nie pojawia się nieco wcześniej zanim ostatnie bity z bajtu zostaną 'wypchnięte' ?
Drugiej rzeczy jakiej nie rozumiem, to dlaczego układ, który odbiera dane musi mieć wyłączony bit od nadawania zegara na pinie z peryferium USART_CLK? Stąd moje dwie funkcje 'init_to_transmit/receive' w której w(y)łączam clocka, ponieważ włączone CLK po obu stronach nie działa. Przeczy to idei szybszej transmisji wykorzystując zegar i omijając bity startu/stopu/parity itd. Docelowo chcę to zrobić na różnicówce gdzie będzie jeden master oraz kilka slave. Chcę też wykorzystać adresowanie, które jest w tym peryferium wpisując do tych rejestrów ich 'unique id' lecz to trochę później.
Program:
Kod: C / C++
Prosiłbym o wskazówki, nie gotowe rozwiązanie, więcej się nauczę, tylko już mi się pomysły skończyły.