Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 mar 2024, o 15:06


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
 Tytuł: Atmega328P UART
PostNapisane: 13 sie 2017, o 18:54 
Offline
Nowy

Dołączył(a): 29 kwi 2017
Posty: 9
Pomógł: 0

Witam bardzo serdecznie, ostatnio bawiłem się trochę UARTem, na Atmedze8 działało, chciałem się przesiąść na Atmegę328P i niestety już nie działa, mimo wprowadzonych zmian. Ktoś pomoże?

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Dodałem sporo DEFINE, żeby rejestry z 328 łapał jako z 8.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sie 2017, o 19:26 
Offline
Użytkownik

Dołączył(a): 29 mar 2012
Posty: 595
Lokalizacja: Jaworzno
Pomógł: 39

W liniach 11 i 12 powinno być:
UBRR0H
UBRR0L

W linii 29:
UCSR0B |= (1<<UDRIE0);

_________________
Pozdrawiam
PP



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sie 2017, o 19:29 
Offline
Nowy

Dołączył(a): 29 kwi 2017
Posty: 9
Pomógł: 0

Mam dołączony taki plik jeszcze z wyrażeniami:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sie 2017, o 19:46 
Offline
Użytkownik

Dołączył(a): 29 mar 2012
Posty: 595
Lokalizacja: Jaworzno
Pomógł: 39

Zrób to kolego raz a porządnie i bez takich kombinacji jak pokazałeś. W pliku uart.c(czy jak on się tam u Ciebie nazywa), w funkcjach podstawowych zrób coś takiego dla procków jakie posiadasz:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


i tak samo dla innych mikrokontrolerów.
Będziesz miał uniwersalną bibliotekę, która będzie się kompilować dla procka jaki ustawisz w opcjach danego projektu.

_________________
Pozdrawiam
PP



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sie 2017, o 23:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Kurcze,
Jakoś nic nie zauważam, :?
czy masz w main'ie: USART_Init(__UBRR); oraz sei(); ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sie 2017, o 06:30 
Offline
Nowy

Dołączył(a): 29 kwi 2017
Posty: 9
Pomógł: 0

Tak, to może zacznę od jakiegoś prostego kodu, który musi zadziałać?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sie 2017, o 09:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2017, o 14:54 
Offline
Nowy

Dołączył(a): 29 kwi 2017
Posty: 9
Pomógł: 0

Przestałem się sugerować kodem z Atmegi8, na którym to już działało :| zacząłem od najprostszego programu, który musi zadziałać, a mianowicie:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


#define F_CPU 1000000 <---- TEGO NIGDY nie wstawiamy w kodzie - mirekk36 (a szczególnie na tym forum)

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


zacząłem kombinować z OSCCAL, bo w Atmedze8, też miałem nie do końca dobrze ustawione fabrycznie.
No i co tu jest źle? Konfiguracja 9600, 8bitów, 1bit stopu, bez kontroli parzystości, bez kontroli przepływu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sie 2017, o 18:17 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

Na początek to wywal te F_CPU i porządnie ustaw freq we właściwościach projektu.

Sent from my Mi-4c using Tapatalk



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 sie 2017, o 20:15 
Offline
Nowy

Dołączył(a): 29 kwi 2017
Posty: 9
Pomógł: 0

Już doszedłem do tego, co było problemem. Jak ustawiałem wartość OSCCAL, to wyszło mi, że transmisja działa dla wartości 65-75, jak się później okazało, działa też dla 125-140. Zmieniłem więc OSCCAL, na środkową z drugiego zakresu i problemy zniknęły.

Jak wygląda sprawa z PWM w Atmega328? Ile można ustawić tam niezależnych kanałów (częstotliwość przerwania może być jednakowa, ważne żeby można było zmienić wypełnienie), i jakie one będą? Muszę mieć 4 PWMy, jaką maksymalną rozdzielczość dostanę?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO