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



Teraz jest 5 lip 2026, o 01:08


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
 Tytuł: ATmega8 SPI
PostNapisane: 20 wrz 2014, o 15:23 
Offline
Nowy

Dołączył(a): 20 sie 2014
Posty: 15
Pomógł: 0

Witam, bardzo bym prosił o sprawdzenie poprawności kodu. Męczę sie z nim już dość długo i nadal nie chce działać.
ATmege8 mam podłączoną do 74HC595 (mega jako master) i na pinach rejestru albo pokazują sie same 1 albo 0
Po zamienieniu lini: while(!(SPSR & (1<<SPIF)))
na: _delay_ms(100);
przynajmniej miga dioda podłącza do PD1 :roll:

Z góry dziękuje za pomoc ;)


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  
 Tytuł: Re: ATmega8 SPI
PostNapisane: 20 wrz 2014, o 15:51 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

Derss napisał(a):
Witam, bardzo bym prosił o sprawdzenie poprawności kodu. Męczę sie z nim już dość długo i nadal nie chce działać.
ATmege8 mam podłączoną do 74HC595 (mega jako master) i na pinach rejestru albo pokazują sie same 1 albo 0
Po zamienieniu lini: while(!(SPSR & (1<<SPIF)))
na: _delay_ms(100);
przynajmniej miga dioda podłącza do PD1 :roll:

Z góry dziękuje za pomoc ;)


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

Dobrze by było jakbyś w kodzie umieszczał komentarze...
A skąd wiesz, że nie działa?
Piszesz, że na pinach masz same zera albo same jedynki.
No przecież takie dane tam wysyłasz... raz zera... raz jedynki...
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Po zamianie na linijki oczekującej na zakończenie transmisji zaczyna migać dioda
A czy przypadkiem linijka ta nie powinna wyglądać tak?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Inna sprawa to czy nie wysyłasz danych zbyt szybko?
Jak jest taktowany procesor i jak ustawiłeś dzielnik?

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8 SPI
PostNapisane: 20 wrz 2014, o 16:01 
Offline
Nowy

Dołączył(a): 20 sie 2014
Posty: 15
Pomógł: 0

Tak to prawda wysyłam same jedynki albo zera ale stan powinien sie zmieniać (raz wszystkie zera, a raz wszystkie jedynki a stan utrzymuje sie ciągle taki sam)
Dioda która jest pod PD1 (w kodzie linia PORTD ^=(1<<PD1);) z while(!(SPSR & (1<<SPIF))); nie mryga, wygląda to jakby ta linia ( while(!(SPSR & (1<<SPIF)));) wprowadzała procesor w pętle nieskończoną :shock:
Procek 1MHz
Następnym razem komentarze na pewno bedą ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8 SPI
PostNapisane: 20 wrz 2014, o 16:15 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

no nie wiem, w kodzie który przedstawiłeś na forum w linii
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

brakuje na końcu średnika.
I tak jest faktycznie, że linia ta ma zatrzymać działanie (pętla nieskończona) do czasu, aż warunek będzie niespełniony
czyli do czasu aż transmisja przez SPI nie dobiegnie końca.
Natomiast w nocie masz taki kod:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Dlatego pytałem jakie ustawiłeś taktowanie dla SPI?
Może po prostu 74HC595 się nie wyrabia?

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8 SPI
PostNapisane: 20 wrz 2014, o 16:43 
Offline
Nowy

Dołączył(a): 20 sie 2014
Posty: 15
Pomógł: 0

Mam ustawione na fck/2
Problem leży w tym że ta dioda pod PD1 która powinna mrygać niezależnie, z linia "while(!(SPSR & (1<<SPIF)));" świeci sie ciągle tak jakby while(!(SPSR & (1<<SPIF))); sie nigdy nie kończyło



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8 SPI
PostNapisane: 20 wrz 2014, o 17:06 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

1. A czy poprawiłeś kod jak Ci napisałem?
2. Skoro masz fosc/2 to gdzie to jest w kodzie? Bo nie widziałem nigdzie w tym co zamieściłeś na forum że to ustawiasz.
No i pytanie czy 74HC595 wyrabia się przy 500kHz?
3. To może zastosuj debuger jednodiodowy ;-)

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8 SPI
PostNapisane: 20 wrz 2014, o 17:29 
Offline
Nowy

Dołączył(a): 20 sie 2014
Posty: 15
Pomógł: 0

1. Poprawiłem (dodałem średnik)
2.jest tam linia SPSR |= (1<<SPI2X);
3. Lel nie wiem co to ;D

Ustawie fosc/128 i dam znać co sie będzie dziać ;)

Na fosc/128 nadal nie działa
while(!(SPSR & (1<<SPIF))); nadal blokuje proca :evil:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8 SPI
PostNapisane: 20 wrz 2014, o 17:41 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

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

To może pokaż jeszcze schemat i fotki Twojego układu


Autor postu otrzymał pochwałę

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8 SPI
PostNapisane: 20 wrz 2014, o 19:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

Przeczytaj to topic7275.html#p83074

Jeśli używasz sprzętowego SPI to pin SS musi być ustawiony jako wyjście żeby procek pracował jako master.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATmega8 SPI
PostNapisane: 20 wrz 2014, o 22:26 
Offline
Nowy

Dołączył(a): 20 sie 2014
Posty: 15
Pomógł: 0

Jeszcze raz bardzo dziękuje za pomoc pin SS nie był ustawiony i atmega pracowała jako slave czekając na odbiór danych blokowała główna pętle sam bym na to nie wpadł tak to jest jak sie czyta dokumentacje po łepkach :D Jeszcze raz bardzo dziękuje ;) Temat uważam za zamknięty



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