Kod:
#include <avr/io.h> // czyli tu dla kompilatora jest cała zawartość pliku io.h (nie wnikajcie teraz gdzie jest ten plik
#include <util/delay.h> // tu podobna historia do powyższej
int main(void)
{
DDRA = 0b00000001;
PORTA= 0b10000000;
while(1)
{
if(bit_is_clear(PINA, 0))
PORTA=PORTA^0b00000001;
_delay_ms(160);
}
}
no to moja próba na sucho bez plitky dopiero je zaprojektuje atmega32 TQFP
Jeśli dołączasz plik nagłówkowy dyrektywą #include to w zależności jak zapiszesz różnie szuka.
- jeśli nazwę pliku umieścisz w znakach < > to będzie szukał w katalogu [katalog programu] AVR Toolchain\avr\include\
- jeśli nazwę pliku umieścisz w " " to będzie szukał w katalogu pisanej aplikacji
Przypominam, że zamiast PORTA=PORTA^0b00000001 można zastosować krótszą formę PORTA^=0b00000001, albo PORTA ^= 1<<0. Łatwiej wtedy w razie zmiany bitu poprawić zapis. Na przykład jeśli chcemy "mrugać" na przykład na PA.5 to zapisujemy PORTA ^= 1<<5, zawsze chyba lepiej niż liczyć które zero zmienić na jeden.
Paweł spróbowałem zrobić zadanie domowe a część kodu sklejałem z postu i lekko zmodyfikowałem po swojemu liczyłem że sedno zadania wykonałem a czy dobrze .. nawet nie wiem co napisałem dopiero się uczę 2 dzień i bez płytki testowe a jak je zrobię dopiero sprawdzę co zrobiłem( napisałem )
Pozdrawiam chętnych do nauki
0
Witam - czy ktoś z kolegów próbował zaprogramować atmę32 na płytce testowej EvB 4.3 z programu AVR Studio 4 - bo nie mogę się połączyć z płytką przez ISP - pozdrawiam Jacek.
SQ6IYY - no ok, chcę tylko przekazać "jakieś" dobre doświadczenia, program w twojej będzie działał tak samo, chodzi tylko o pokazanie inny, czasami lepszy rozwiązań.
Jacku - SQ2EER, a jaki masz programator? Wybrałeś odpowiedni w AVRStudio?
(14-01-2012 18:08)SQ6OXK napisał(a): [ -> ]PS. Czemu AVR Studio 4, a nie 5?
bo komputerek, który mam w domu nie pozwala na zainstalowanie 5 - nawet nie wiem jak wygląda więc nie moge opisywać jego działania.
(14-01-2012 21:51)SQ6IYY napisał(a): [ -> ]...
no to moja próba na sucho bez plitky dopiero je zaprojektuje atmega32 TQFP
nie bardzo wiem o co chodzi z tą prośbą - jaśniej proszę
(14-01-2012 22:57)SQ6OXK napisał(a): [ -> ]Przypominam, że zamiast PORTA=PORTA^0b00000001 można zastosować krótszą formę PORTA^=0b00000001, albo PORTA ^= 1<<0. Łatwiej wtedy w razie zmiany bitu poprawić zapis.
Oczywiście masz rację, ale "oni" dopiero sie uczą i nie chcę ludzi zniechęcać dając od początku mało dla nich zrozumiały zapis typu x+=1 (czy własnie ten podany przez Ciebie). Jeśli już chcesz im to przekazać to trzeba wyjasnić na jakiej zasadzie powstaje taki zapis. Wyjaśniam zatem: wyrażenie
x=x+1; to linijka kodu mówiąca, że od tej pory wartość x jest większa o 1 (przypuśćmy że x miał na początku wartość równą 5, po tej linijce kodu jego wartość zmieniona jest na 6).
W języku C stosuje sie krótszy zapis, znak "+" jest przestawiony przed znak "=" oraz "x" po prawej stronie "znika". Poniżej przedstawiam przykłady zapisów tradycyjnych i skróconych znaczących dokładnie to samo:
x=x-10; jest równoznaczne z
x-=10;
zmienna = zmienna << 1 jest równoznaczne z
zmienna <<= 1;
PORTB = PORTB & 0x0F jest równoznaczne z
PORTB &= 0x0F
(15-01-2012 0:27)SQ2EER napisał(a): [ -> ]Witam - czy ktoś z kolegów próbował zaprogramować atmę32 na płytce testowej EvB 4.3 z programu AVR Studio 4 - bo nie mogę się połączyć z płytką przez ISP - pozdrawiam Jacek.
1. Sprawdź czy zainstalowałeś sterownik programatora - po podłączeniu go do komputera powinien być widoczny w menadżerze urządzeń. Zaznaczyłem czerwonymi elipsami gdzie u mnie jest widoczny mój programator
2. W AVR Studio 4 .... menu "Tools", "Program AVR", "Connect" i wybierasz z lewej rodzaj posiadanego programatora.
Czy korzystam z programatora USB AVR ISP II, czy z tego na płytce ewaluacyjnej ( + bootloader na Atmedze) zawsze wybieram AVRISP - to ustawienie działa u mnie w obu przypadkach.
(załaczony plik) W prezencie moje wypociny w programie Eagle, płytka z atmegą w obudowie TQFP jeszcze sie nie zmaterializowała i już wiem że zapomniałem o przycisku RESET na tej płytce - napewno to kiedyś poprawię, ci co znają Eagle sami sobie to poprawią. Na płytce nie zastosowałem standardowego gniazdka do programatora, bo zajmuje duzo miejsca (robiłem to dla siebie i miałem w planie polutowanie prostej przejściówki). Na płytce jest miejsce na pamięć i układ zagarka/kalandarza, które chcę wykorzystać w syntezie.
Ta druga płytka z AD9951 została przeze mnie wykonana i podłączona do kupnej płyty ewaluacyjnej - działa !
Witam - u mnie programator na płytce jest widoczny jako:
Witam - tak to ta płytka EvB 4.3 - wcześniej działała jak próbowałem coś pisać w Bascom'ie
http://sp-hm.pl/thread-798.html - kilka miesięcy leżała nie podłaczona do kompa nic nie robiłem na niej - pomimo postępowania jak w tym linku
http://www.and-tech.pl/forum/viewtopic.php?t=911 nie mogę wgrać bootload'era do żadnego mikrokontrolera ( 2 sztuki M644p; M32; M16) cosik się pomotało w kompie AVRDUDE pokazuje że nie może znaleźć programatora:
Skoro zaistniał taki problem to chcę tu wyjaśnić czym jest
bootloader dla tych co zaczynają przygodę z mikrokontrolerem. Standardowym sposobem programowania jest użycie programatora. Producenci płyt ewaluacyjnych stosują zamiast jednego z klasycznych programatorów zwykły konwerter USB <-> SERIAL(COM), bo jest tańszy. Nie da się(chyba że czegoś nie wiem) zaprogramować nim fabrycznie nowej ( z czystą pamięcią ) ATMEGI - tylko programatorem zaprogramujecie. Żeby dało się programować Atmegę poprzez ten konwerter Wgrywany jest w Atmegę (czyli tak naprawdę Atmega jest programowana) właśnie BOOTLOADER - jest to mały programik, który pozwala programować Atmegę (przy użyciu wspomnianego konwertera) poprzez 2 piny PORTU D. Bootloader wgrywany jest jednorazowo, pozwala on programować Atmegę aż do momentu jej zdechnięcia (moją programowałem już grubo ponad 1000 razy i żyje
). Sprzedawca płyty ewaluacyjnej programuje Atmegę bootloaderem za nas i nie musimy się martwić jak go wgramy. Dostajemy zestaw gotowy do działania ! Przynajmniej tak robi Sklep z którego ja kupiłem płytę ewaluacyjną.
Poniżej umieszczam plik z opisem mojej płyty ewaluacyjnej - koniecznie przeczytajcie strony: 4, 12 i 13 - one mówią conieco na ten temat
http://www.microsense.pl/allegro/EvB_ATm...anuals.pdf
Do SQ2EER: Jeśli miałeś wgrany bootloader w w którąś ze swoich Atmeg to on powinien tam ciągle być chyba że go w jakiś sposób skasowałeś - nie znam innego sposobu jak użycie programatora (nie jestem mistrzem tego tematu), a ty go chyba nie posiadasz. Ludzie tacy jak Jarek SP3SWJ czy Adam SP5FCS mają większe doświadczenie - niech mnie skorygują jeśli niechcący kłamie.
Są pewnie tacy którzy czekają aż umieszczę kolejne lekcje zamiast wyjaśniać inne rzeczy, ale chciałbym żebyśmy wszyscy szli "łeb w łeb" co zminimalizuje liczbę pytań i "chaos" na forum.
Dziś będzie kolejna lekcja - jak wrócę z pracy to cos skrobnę i tu zamieszczę