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



Teraz jest 16 lis 2024, o 04:37


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 26 ] 
Autor Wiadomość
PostNapisane: 8 sty 2021, o 21:53 
Offline
Nowy

Dołączył(a): 13 sie 2019
Posty: 9
Pomógł: 0

Witam

Pytanie odnośnie podłączenia linii transmisji usb do atmega1284, wg orange book pin D+ musi być podany na port typu INTx, czyli pod wejściem PB2 w atmega1284 gdzie jest INT2, też powinno wszystko działać?

Bo mam z tym problem i nie wiem czy trzeba inaczej ten port skonfigurować czy powinno od kopa działać.

Program jest ok, działał na atmega328 - samo wykrycie urządzenia w menedzerze urządzeń, nic więcej, przekopiowałem pod atmege1284 z przeportowaniem i nie wykrywa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2021, o 22:07 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27308
Lokalizacja: Szczecin
Pomógł: 1041

pamiętaj że to nie tylko sekcja INTx ale i piny - na początku pliku

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2021, o 22:18 
Offline
Nowy

Dołączył(a): 13 sie 2019
Posty: 9
Pomógł: 0

usb mam podpięte pod poniższe piny
Cytuj:
#define USB_CFG_IOPORTNAME B
/* This is the port where the USB bus is connected. When you configure it to
* "B", the registers PORTB, PINB and DDRB will be used.
*/
#define USB_CFG_DMINUS_BIT 1
/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
* This may be any bit in the port.
*/
#define USB_CFG_DPLUS_BIT 2



Wrócilem do ksiązki i doczytałem tą sekcje

Cytuj:
jeśli zechcemy
użyć mikrokontrolerów ATmega644P lub ATmega1284P (odpowiednik, jeśli
chodzi o wyprowadzenia, tak jak ATmega32), to proponujemy w ramach
ćwiczeń wykorzystać przerwanie PCINTx dostępne również na pinie INT1,
czyli PCINT27. W takim przypadku konfiguracja będzie wyglądała tak:
/* -------------------------- Hardware Config ------------------------ */
#define USB_CFG_IOPORTNAME D
#define USB_CFG_DMINUS_BIT 5 // pin PD5
#define USB_CFG_DPLUS_BIT 3 // pin PCINT27 (PD3) dla ATmega644/1284
/* -------------------- Optional MCU Description --------------------- */
#define USB_INTR_CFG PCMSK3
#define USB_INTR_CFG_SET (1 << PCINT27)
#define USB_INTR_CFG_CLR 0
#define USB_INTR_ENABLE PCICR
#define USB_INTR_ENABLE_BIT PCIE3
#define USB_INTR_PENDING PCIFR
#define USB_INTR_PENDING_BIT PCIF3
#define USB_INTR_VECTOR PCINT3_vect


Jak rozumiem muszę się wokół tego w pliku zakręcić?

Można gdzieś znaleźć opis/rozwinięcie powyższych definicji ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sty 2021, o 04:05 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27308
Lokalizacja: Szczecin
Pomógł: 1041

drakston napisał(a):
Jak rozumiem muszę się wokół tego w pliku zakręcić?

W kodach przykładowych do książki masz ładnie wszystkie najpotrzebniejsze sekcje w tym tą którą tu pokazałeś - wystarczy że inną tzn dla innego procka zakomentujesz a odkomentujesz właśnie tą - i już będzie ci śmigać. Tu w tym wypadku będzie używany PCINT27 zamiast INTx

Jeśli się upierasz na INT2 to hmmm musisz sprawdzić ale z tego co pamiętam to to przerwanie się nie nadaje bo jest asynchroniczne w porównaniu do INT0 albo INT1 ... ale ponieważ to procek m1284p to spokojnie możesz użyć przerwania PCINTx tylko sprawdź jaki to numerek PCINT w nocie PDF i ew podmień pozostałe nazwy jak

PCMSKx
PCIEx
PCIFx
PCINTx_vect

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sty 2021, o 12:57 
Offline
Nowy

Dołączył(a): 13 sie 2019
Posty: 9
Pomógł: 0

no to tak od początku
kawałek schematu z usb
Obrazek

Chciałem przerobić przerwszy przykład komunikacji z książki, czyli po prostu żeby PC wykrył mi urządzenie. Biblioteka wykorzystana czysta, domyśla konfiguracja, lecę wg przykładu.

Przy pierwszych próbach miałem podłączoną ścieżkę D+ do dwóch pinów, wywalało cały czas nie znalezione urządzenie. Dzisiaj jak się wyspałem w końcu :) kapnąłem że przecież nie obsługuje tego pinu nigdzie w kodzie więc stoi tam stan niski albo hi-z i pewnie wali mi transmisje do masy...

Ścieżka ucięta, kod jak niżej
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.

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


i zima... nie ma nawet że nie rozpoznano urządzenia... Sprawdziłem na oscyloskopie to D- widać że jest trochę ponad 200ms stan niski, potem ramki informacji i i tak w kółko. na D+ lecą 3 krótkie ramki razem co jakiś czas.

O czym zapomniałem?

aha sprawdziłem też bez dodatkowej konfiguracji przerwania i też brak reakcji.

dodam jeszcze że na pozostałych PORTB mam piny z danymi do LCD ale jest odpięte wszystko i kod do lcd zakomentowany więc nie powinno to robić problemu.

Zegar leci na 16mhz, gdzie trzeba zdefiniowany. Brak błędów przy kompilacji, działam w AVRstudio. Robiłem ten przykład na atmega328p z wykorzystaniem portu INT0 i śmigało.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sty 2021, o 13:40 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27308
Lokalizacja: Szczecin
Pomógł: 1041

drakston napisał(a):
O czym zapomniałem?

nie wiem ale jak ja pokazywałem w przykładzie PCINT27 to był np PCMSK3 .... natomiast PCINT10 jest daleko od niego - na pewno o 8 bitów - więc wątpię (nie zaglądając teraz do noty PDF - ty sobie zajrzyj) bo pisałem ci żebyś zwrócił uwagę na wszyskie PCMSKx i tak dalej - a ty sobie niefrasobliwie przepisałeś wszędzie z trójką.

Zajrzyj do mojego postu wyżej

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sty 2021, o 18:30 
Offline
Nowy

Dołączył(a): 13 sie 2019
Posty: 9
Pomógł: 0

wg. noty powinno być tak

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


efekt taki że co pare sekund odświeża listę urządzeń w menedżerze i wyświetla okienko nie rozpoznano urządzenia.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sty 2021, o 19:06 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27308
Lokalizacja: Szczecin
Pomógł: 1041

Pokaż obydwie części konfiga twojego teraz - czyli jak masz PINY i te przerwania

Poza tym czy wgrywasz jakąś najprostszą konfigurację do testu czy kombinujesz od razu z czymś ciężkim i nie wiadomo gdzie masz błąd

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sty 2021, o 19:32 
Offline
Nowy

Dołączył(a): 13 sie 2019
Posty: 9
Pomógł: 0

Kod main jest wpis wyżej, sama próba połączenia.

cały usbconfig
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: 9 sty 2021, o 19:55 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27308
Lokalizacja: Szczecin
Pomógł: 1041

wiesz, troszkę łapię się za głowę jak widzę ten konfig ... oczywiście jeśli masz Orangebook'a - bo z tego co piszesz wygląda że masz OB.....

No to po jasny gwint sam sobie robisz podwójne salto-mortale z pętlą na szyi ?

Ja np spróbowałbym najpierw DOKŁADNIE tak jak jest w książce jakiś przykład - a masz przykład na m644P (to jest IDENTIKO to samo co m1284P) i z V-USB na tych pinach co w książce żeby mi ruszyło ....

Jakby mi ruszyło to zmieniłbym tylko piny i przerwanie

.... a nawet jakbym się uparł i nie chciał przetestować tego co w książce - to Qurczę tyle pracy włożyłem i w wyjaśnienie całego konfiga linia po linii ... (ale ok nawet mogę zrozumieć, że i tu można się pomylić gdy się człowiek bierze pierwszy raz za to) ...

A ty nie ... Widzę, że wziąłeś sobie czysty fabryczny usbconfig.h i zajeżdżasz go po swojemu - wiedząc że możesz popełnić w nim błędy jeszcze w wielu miejscach. Po co tak ? Zobacz ile się już "kopiesz z koniem"

Dlaczego nie użyjesz przykładu z książki (kody do książki) czyli jakiegoś folderu z biblioteką i tym plikiem cfg ? zmieniając tylko te piny i przerwania ?

Na pierwszy rzut oka widzę, że mogą być w tym co pokazałeś babole ale to jest chore tak analizować to w ciemno - jaki to ma sens ? Tak możemy pisać przez 100 tys postów.

Poza tym ja założyłem że ty chcesz to odpalić w trybie HID ... ale teraz się zastanawiam czy na pewno w HID ? czy nie ? też chyba jasno to nie wyniknęło z postów

i na koniec - pokazałeś mikrofragmencik swojego schematu - ale nawet na schemacie nie widać która to u ciebie linia D+ a która D- .... czy ty już na tym etapie nie poległeś?

-------------------------

Mówię ci - zacznij od przykładu/kodu z książki tzn z któregoś dowolnego ćwiczenia bo tam masz PRZEŚLICZNIE przygotowane usbconfig.h i na dodatek z ładnymi sekcjami do przełączania dla pinów i różnych przerwań dla kilku różnych procków - tak warto sobie samemu w kodach robić, żeby później uniwersalnie móc to przenosić na różne procki - a ty robisz to po linuxowemu. Zajrzyj pan do tych ćwiczeń kilku do tych plików usbconfig.h i przeanalizuj jak to przygotowałem - zobaczysz że doznasz olśnienia

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sty 2021, o 21:26 
Offline
Nowy

Dołączył(a): 13 sie 2019
Posty: 9
Pomógł: 0

Po 1 ile tego schematu ma być? widać na nim złącze, jego numery pinów i cały tor usb do procesora, przecież więcej nie trzeba... ten sam tor był sprawdzany na atmega328p i komunikacja wg pierwszego przykładu z książki działała bez problemów.

po 2, Pisałem że chce przerobić pierwszy przykład, że lecę wszystko wg. niego - pierwszy przykład to nie jest hid, tak? Sam Pan pisał w książce o przekopiowaniu czystego konfigu i konfiguracji wg tego pierwszego przykładu co sprowadzało się tylko do ustawienia portów, czestotliwości i nazwy ... zakładając że podłączamy się pod INT0 w wybranym procku.

Jak dobrze pamiętam to w książce widniała informacja że każdy port typu INTx może być użyty do v-usb dlatego na tej bazie u mnie w projekcie wybrałem INT2 bo szczerze mówiąc nic innego wolnego nie mam.

Przeleciałem przykład pierwszy z książki ale nie działało, sugestia od Pana z ustawieniem konfigu przerwań, z poprawka o poprawną konfiguracje z noty procka który też nic nie daje. Pan mówi o przykładzie który jest na stronie 203 książki tak? czyli w teorii mam dobrze to wpisane.

Jutro rozpruje płytkę i przepnę usb na INT0 a potem INT1, jak będzie działać to krótko mówiąc INT2 w atmega1284 nie nadaje się pod usb/albo trzeba czegoś więcej.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sty 2021, o 22:37 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27308
Lokalizacja: Szczecin
Pomógł: 1041

drakston napisał(a):
Jutro rozpruje płytkę i przepnę usb na INT0


A nie no to spoko jak ci już działało to najważniejsze - bo właśnie znaczy że np wyeliminowane są błędy np połączeń

Weź zatem na żywca CAŁY plilk usbconfig.h np z klawiatury HID ok i zmień na swoje piny PB 1 i 2 z przerwaniem PCINT10

ale ważne żebyś wziął ten plik z ćwiczenia z książki a nie na czysto i go przerabiał ok?

i daj znać

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2021, o 10:40 
Offline
Nowy

Dołączył(a): 13 sie 2019
Posty: 9
Pomógł: 0

Przykład 4 z HID działa na konfigu z przykładu i na moich ustawieniach i pozostałych czyli standardowo wejścia INT

Przykład 1 podstawowy z książki nie działa na żadnym porcie w przypadku Atmega1284.

Generalnie problem z usb w projekcie rozwiązałem w inny sposób także dzięki za pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2021, o 11:31 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27308
Lokalizacja: Szczecin
Pomógł: 1041

drakston napisał(a):
Przykład 1 podstawowy z książki nie działa na żadnym porcie w przypadku Atmega1284.

To niemożliwe - aż sam sprawdzę

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2021, o 12:02 
Offline
Nowy

Dołączył(a): 13 sie 2019
Posty: 9
Pomógł: 0

Przy obojętnie jakiej kombinacji podpięcia z odpowiednim konfigiem - komunikat nie znaleziono urzadzenia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2021, o 12:24 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27308
Lokalizacja: Szczecin
Pomógł: 1041

ty masz procka ATmega1284P czy ATmega1284 ? bo to różne procki

Poza tym podeślij mi ten kod z tego 1-go ćwiczenia który ci nie działa - bo u mnie śmiga że aż miło, więc na razie jedyne co przychodzi mi do głowy to złe połączenia niestety. Oczywiście mówię o procku m32.

Ale sprawdzę niedługo na m1284P i nawet spróbuję się podłączyć na INt2 jak ty próbowałeś

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2021, o 18:03 
Offline
Nowy

Dołączył(a): 13 sie 2019
Posty: 9
Pomógł: 0

Wrzucę jak będę przy drugim kompie.

Mam m1284.

Na pewno to są różne procki ? wersja P oznacza Picopower czyli niższe zużycie prądu i ma dołożone jedyne co jakieś dodatkowe pierdoły oszczędzające energie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2021, o 18:36 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27308
Lokalizacja: Szczecin
Pomógł: 1041

tak sorki sprzętowo jednak się nie różnią

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sty 2021, o 14:44 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27308
Lokalizacja: Szczecin
Pomógł: 1041

jeszcze dzisiaj pokażę że wszystko działa z książki - KAŻDY przykład - a dodatkowo odpalę na twoich ustawieniach czyli PB1,2 czyli na PCINT10 oczywiście na ATmega1284P

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sty 2021, o 18:37 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27308
Lokalizacja: Szczecin
Pomógł: 1041

proszę:


_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 sty 2021, o 07:13 
Offline
Użytkownik

Dołączył(a): 07 paź 2011
Posty: 77
Pomógł: 0

Wiem że zostanę pogryziony za pytanie, ale może nie.
Pewnie też to było opisane, ale jak szukam to nie potrafię znaleźć :-(

O co dokładniej chodzi z tym przerwaniem synchronicznym i asynchronicznym.
Doszukałem się różnicy o co w nich ogólnie tylko chodzi i nawet ludzie opisują że Atmel wprowadził pewne zamieszanie w nich (myli ich opisy w stosunku do pinów), ale jaki wpływ mają
te przerwania w stosunku do biblioteki V-USB?
Tak ogólnie to dopiero teraz po suplemencie uświadomiłem sobie o takiej różnicy, zastanawiam się też jaki ma to wpływ na inne programy wykorzystujące przerwania zewnętrzne?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 sty 2021, o 09:59 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27308
Lokalizacja: Szczecin
Pomógł: 1041

Slawek napisał(a):
i nawet ludzie opisują że Atmel wprowadził pewne zamieszanie w nich (myli ich opisy w stosunku do pinów)

Przepraszam ale co to za ludzie ? Bez żadnej złośliwości ale najczęściej to jakieś początkujące osoby jak już, które nie dostrzegają tego, że praktycznie w każdym procku AVR działają one IDENTYCZNIE, że praktycznie notę z jednego procka można używać prawie bez kłopotów do innego jak chodzi o opisy modułów. Oczywiście nie zawsze bo bywają różnice. Poza tym czasem drobne pomyłki się mogą zdarzyć ale i tak Atmel to robił zawsze NAJLEPSZE noty PDF, najbardziej czytelne ... porównaj sobie to do Microchipa dawnego to zrozumiesz.

Co się tyczy samych przerwań to czemu nie zajrzysz do noty PDF żeby zobaczyć czym się różnie przerwanie INT2 od przerwań INT0 albo INT1? Przecież tam jak byk widać, że w przypadku INT0 i INT1 masz już na pierwszy rzut oka więcej możliwości co do samego WYZWALANIA przerwań. W tabelce za pomocą dwóch bitów ISCxn ustawia się czy przerwanie ma być wyzwalane:

1. zboczem opadającym
2. zboczem narastającym
3. poziomem niskim
4. poziomem wysokim

a w przypadku INT2 masz do dyspozycji TYLKO i wyłącznie

1. zboczem opadającym
2. zboczem narastającym

Obrazek

Przerwania są rejestrowane asynchronicznie zboczami ale długość impulsów musi się mieścić w odpowiednim przedziale czasowym o czym dalej jest w nocie.

I jest to napisane wyraźnie w każdej nocie które posiada akurat takie przerwanie. W czym problem? Po co czytasz co piszą ludzie, którzy akurat tego nie rozumieją?

Slawek napisał(a):
ale jaki wpływ mają
te przerwania w stosunku do biblioteki V-USB?

Jeśli chodzi o INT2 na ATmega1284 to właśnie sprawdziłem i jednak się myliłem - bo V-USB spokojnie działa nawet na INT2 dlatego że w tym procku to normalne przerwanie synchroniczne jednak ;) a ja myślałem tak na szybko, że podobnie jak w m32 będzie asynchroniczne. I tu się właśnie zawsze kłania sięganie do noty PDF. A zatem krótko mówiąc na m1284P można odpalać na kilka sposobów na pinie PB2 ;) bo i na INT2 i na PCINT10

Kod:
#define USB_INTR_CFG            EICRA
#define USB_INTR_CFG_SET        ((1 << ISC20) | (1 << ISC21))
#define USB_INTR_CFG_CLR        0
#define USB_INTR_ENABLE         EIMSK
#define USB_INTR_ENABLE_BIT     INT2
#define USB_INTR_PENDING        EIFR
#define USB_INTR_PENDING_BIT    INTF2
#define USB_INTR_VECTOR         INT2_vect

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 sty 2021, o 19:34 
Offline
Użytkownik

Dołączył(a): 07 paź 2011
Posty: 77
Pomógł: 0

Wydawało się proste pytanie a się skomplikowało.
"Ludzie" to było spontaniczne wtrącenie. Mało ważne kto i co, ale szukając informacji o przerwaniach natrafiłem na ciekawy wpis na AVRFreaks. Ktoś (w takim sensie ktoś, osoba bo chyba nie potrzebujesz tu imienia bo i tak nie pamiętam) opisywała jak w dokumentacji atmela opisane są przerwania. Co innego w datasheet, co innego w przykładach i dopiero w erracie co nieco się wyjaśnia.

Mnie chodziło o to dlaczego piszesz
mirekk36 napisał(a):
musisz sprawdzić ale z tego co pamiętam to to przerwanie się nie nadaje bo jest asynchroniczne

Jaki wpływ na pracę biblioteki V-USB to mam.
Jeśli nie doczytałem tego w orangebooku to przepraszam i proszę o podanie na której stronie to jest, jeśli nie ma to proszę wyjaśnij dlaczego tak mówisz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 sty 2021, o 20:15 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27308
Lokalizacja: Szczecin
Pomógł: 1041

Slawek napisał(a):
Ktoś (w takim sensie ktoś, osoba bo chyba nie potrzebujesz tu imienia bo i tak nie pamiętam) opisywała jak w dokumentacji atmela opisane są przerwania. Co innego w datasheet, co innego w przykładach i dopiero w erracie co nieco się wyjaśnia.

Oczywiście że mi nie są potrzebne ani imiona ani numery butów ani inne dane osobowe - a po choinkę. Nadal jednak twierdzę, żebyś ty zamiast się skupiać na tym co ktoś tam napisał i że jak czegoś nie zrozumiał to pisał dziwne rzeczy - to sam zajrzyj do noty, zobacz, porównaj i napisz czego nie rozumiesz. Bo teraz to już dziwnie piszesz po tym co na górze starałem się wyjaśnić i podać ci trop co i jak jest opisane w nocie - a ty dalej swoje, że ktoś coś tam napisał sobie. W internecie jest mnóstwo bzdur i nic na to nie poradzisz.

W ogóle nie rozumiem co tu wyjaśniać jak chodzi o różnice w działaniu tych przerwań skoro w nocie PDF jest to opisane jasno i prosto jak byk. A i tak w 99% przypadków nikt nie wykorzystuje w jakiś zaawansowany sposób różnic jakie niosą za sobą działania tych przerwań.



Slawek napisał(a):
Jaki wpływ na pracę biblioteki V-USB to mam.

Wpływu nie ma - skoro ktoś przewidział w swojej bibliotece że mogą być użyte tylko przerwania synchroniczne no to co na to poradzisz. Poza tym biblioteka V-USB wykorzystuje w sposób drastycznie zaawansowany zależności czasowe, dlatego spora jej część napisana jest w asemblerze i co ciekawe w zależności od częstotliwości taktowania wstawki asemblerowe również drastycznie muszą się różnić, bo rozkazy asm dobierane są tak aby zgadzały się czasówki do prawie pojedynczych taktów zegara.

Poza tym pokazałem ci wyżej fragment noty - możesz sobie ten tekst wrzucić do gogle translate zawsze - jeśli np do końca coś tam po angielsku nie rozumiesz - co za problem?

Ale ok jest tam napisane że przerwania od zbocza narastającego czy opadającego dla przerwania wyzwalane są asynchronicznie czyli niezależnie od sygnału CLK, za to muszą się zmieścić zgodnie z podaną tam tabelą w odpowiedniej ilości cykli zegara. W związku z tym, np krótsze impulsy mogą nie być w ogóle "zauważone" przez procka.

Ja wprawdzie nie analizowałem na poziomie asemblera wykorzystania przerwań INTx w V-USB - spojrzałem tylko na dostępne bity konfiguracyjne do ustawienia dla przerwań i po tym widać, że autorzy V-USB zdecydowali się na synchroniczne przerwania jeśli chodzi o INTx. Trzeba byłoby posiedzieć nad analizą kodu asemblera i ręcznie liczyć cykle i co robi kod - a jednocześnie poznać od podszewki czysty protokół USB żeby sobie odpowiedzieć na takie pytanie - tylko czy jest sens ? Ja nie widzę takiego sensu. Jeśli ty widzisz - to już wiesz co musisz zrobić żeby zaspokoić ciekawość dalej.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sty 2021, o 20:01 
Offline
Użytkownik

Dołączył(a): 07 paź 2011
Posty: 77
Pomógł: 0

Nie zgadzam się z tym co napisałeś.
Niemniej to ty piszesz na forum że asynchroniczne przerwania nie działają i potem w suplemencie też ty to powtarzasz.
Skoro wymagasz ode mnie rzetelności w pisaniu posta, czym się nawet zgadzam. Uważam ze dostałem od ciebie po uszach, czego się zresztą spodziewałem na początku. Co prawda myślałem że jak zapytam wprost na forum zamiast siedzenia nad notami będzie łatwej. Zresztą nie pisałem że nie rozumiem tekstu tylko że nie rozumiem różnicy w wymienionych przerwaniach , a to jednak co innego. Dla jasności doczytałem głębiej, więc teraz już wiem.
To cichłbym abyś teraz sam był fair i powiedział dlaczego tak piszesz i potem mówisz. Czy sprawdzałeś to, że asynchroniczne nie działają, skąd masz taką wiedzę. Bo nie tłumacząc co masz namyśli masz mój poziom, który skrytykowałeś w delikatny wprawdzie sposób.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sty 2021, o 21:59 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27308
Lokalizacja: Szczecin
Pomógł: 1041

Slawek napisał(a):
Uważam ze dostałem od ciebie po uszach

Ja pierdziu! gdzie ja tobie po uszach dawałem, gdzie ja cię krytykowałem? - podpowiadam coś z dobrego serca a ten mi tu spazmów dostaje - no ja pierdziu. Idź pan .... nie powiem gdzie - nie mam zamiaru dalej dyskutować w takim tonie.

Slawek napisał(a):
, czego się zresztą spodziewałem na początku.

a niby po czym się spodziewałeś ... no chore podejście.

I weź tu człowieku staraj się pomóc - zawsze się znajdzie taki jeden co to napisze że go opierdzielam chociaż nawet mi przez myśl to nie przeszło bo i za co miałbym to robić - ale już po pierwszym twoim poście widziałem że jakoś tak zadziornie zaczynasz pisać.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



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: 26 ] 

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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO