Ani w kursie w EP ani rozszerzonym tu nie znalazłem informacji na temat samego rdzenia i instrukcji. Czy XMEGA to to samo co zwykły AVR tylko rozbudowany wewnętrznie? Czy oba mają ten sam zestaw instrukcji, czy są zupełnie różne?
Różnice nie są duże, aczkolwiek przy programowaniu w assemblerze mogą być istotne. Przy programowaniu w C nie trzeba się zagłębiać w takie informacje. Rdzeń został trochę rozbudowany, żeby między innymi działać z wielopoziomowym kontrolerem przerwań (PMIC). Zmiany w rdzeniu nie są duże, natomiast peryferia wszystkie bez wyjątku zostały zrobione od nowa.
Spis instrukcji assemblera znajdziesz tu http://www.atmel.com/images/doc0856.pdf a dokładna lista obsługiwanych instrukcji jest w dokumentacji konkretnego procesora.
Właśnie chcę kupić pokazany tu moduł, ale mnie interesuje jak to wszystko zrobić w assemblerze. A skoro ma to być kurs podstaw Xmega to proponowałbym uzupełnić go o analogiczne procedurki w tym właśnie języku.
Mikrokontrolery AVR zostały zaprojektowane z myślą o wykorzystaniu języka C i kursu Assemblera tutaj nie będzie. Polecam C, bo jest bardzo łatwy, a kompilator bardzo dobrze optymalizuje kod.
Gdy podłączam X3-DIL64 do AVRDragon dostaję komunikat Got error setting up PDI mode: Device is not supported in this emulator mode. Debugger command setParameter failed., ModuleName: TCF (TCF command: Device:startSession failed.) Co to może być ?
"wywołujemy znaną już funkcję toggle, która za argument przyjmuje PORTE, kiedy przycisk"
Nie chciałbym się mądrować ale do funkcji toggle argumentem przekazywanym jest adres: &PORTE. Natomiast void toggle(PORT_t *io) , operuje dalej gdyż *io jest wskaźnikiem przechowującym adres &PORTE. Jeśli to kurs dla początkujących, to warto wspomnieć o wskaźnikach i adresach, bo czasami niektórzy myślą, że pracują na zmiennych ze znaczkami * oraz &. Z kontekstu tekstu autora również można domniemać, że pracujemy na zmiennych.
Ok, jak się np definiuje lub robi alias swojej nazwy pod pin portu? Np nazwamoja alias PORTC.x i jak nim machać jak było w bas SET/RESET nazwamoja? Lub nazwamoja = 1/0?
14 komentarze :
Ani w kursie w EP ani rozszerzonym tu nie znalazłem informacji na temat samego rdzenia i instrukcji. Czy XMEGA to to samo co zwykły AVR tylko rozbudowany wewnętrznie? Czy oba mają ten sam zestaw instrukcji, czy są zupełnie różne?
Różnice nie są duże, aczkolwiek przy programowaniu w assemblerze mogą być istotne. Przy programowaniu w C nie trzeba się zagłębiać w takie informacje. Rdzeń został trochę rozbudowany, żeby między innymi działać z wielopoziomowym kontrolerem przerwań (PMIC). Zmiany w rdzeniu nie są duże, natomiast peryferia wszystkie bez wyjątku zostały zrobione od nowa.
A jest gdzieś wykaz instrukcji assemblerowych, które obsługuje ten rdzeń?
Spis instrukcji assemblera znajdziesz tu http://www.atmel.com/images/doc0856.pdf a dokładna lista obsługiwanych instrukcji jest w dokumentacji konkretnego procesora.
Właśnie chcę kupić pokazany tu moduł, ale mnie interesuje jak to wszystko zrobić w assemblerze. A skoro ma to być kurs podstaw Xmega to proponowałbym uzupełnić go o analogiczne procedurki w tym właśnie języku.
Mikrokontrolery AVR zostały zaprojektowane z myślą o wykorzystaniu języka C i kursu Assemblera tutaj nie będzie. Polecam C, bo jest bardzo łatwy, a kompilator bardzo dobrze optymalizuje kod.
Gdy podłączam X3-DIL64 do AVRDragon dostaję komunikat Got error setting up PDI mode: Device is not supported in this emulator mode. Debugger command setParameter failed., ModuleName: TCF (TCF command: Device:startSession failed.) Co to może być ?
Dragon nie obsługuje PDI. Podłącz przez JTAG i wszystko będzie działać.
"wywołujemy znaną już funkcję toggle, która za argument przyjmuje PORTE, kiedy przycisk"
Nie chciałbym się mądrować ale do funkcji toggle argumentem przekazywanym jest adres: &PORTE.
Natomiast void toggle(PORT_t *io) , operuje dalej gdyż *io jest wskaźnikiem przechowującym adres &PORTE.
Jeśli to kurs dla początkujących, to warto wspomnieć o wskaźnikach i adresach, bo czasami niektórzy myślą, że pracują na zmiennych ze znaczkami * oraz &.
Z kontekstu tekstu autora również można domniemać, że pracujemy na zmiennych.
trochę lipa , stm32 ma część wejść ,,5V tolerant'.
5V to już przeszłość i nie ma za czym płakać ;) wszystkie współczesne scalaki działają na 3,3V
Ok, jak się np definiuje lub robi alias swojej nazwy pod pin portu?
Np nazwamoja alias PORTC.x
i jak nim machać jak było w bas SET/RESET nazwamoja?
Lub nazwamoja = 1/0?
Można wykorzystać #define
Cześć, Leon popełniłeś błąd w nazwie tytułu książki Tomasza, napisałeś "przykłady", a powinno być projekty. Pozdrawiam Annon
Prześlij komentarz
Skomentuj!