Odpowiedz 
 
Ocena wątku:
  • 3 Głosów - 3.33 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Programowanie w języku C w środowisku AVR Studio4
SQ6IYY Offline
miso(michal]
***

Liczba postów: 155
Dołączył: 21-09-2009
Post: #11
Wink RE: Programowanie w języku C w środowisku AVR Studio4
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 Smile

Nie otrzymasz koni wyścigowych krzyżując dwa osły
14-01-2012 21:51
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ6OXK Offline
Paweł
****

Liczba postów: 317
Dołączył: 23-06-2010
Post: #12
RE: Programowanie w języku C w środowisku AVR Studio4
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.

--= SWL SP6-01-396 =--
14-01-2012 22:57
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ6IYY Offline
miso(michal]
***

Liczba postów: 155
Dołączył: 21-09-2009
Post: #13
RE: Programowanie w języku C w środowisku AVR Studio4
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

Nie otrzymasz koni wyścigowych krzyżując dwa osły
14-01-2012 23:13
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ2EER Offline
Jacek sk
***

Liczba postów: 182
Dołączył: 17-06-2009
Post: #14
RE: Programowanie w języku C w środowisku AVR Studio4
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.
15-01-2012 0:27
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ6OXK Offline
Paweł
****

Liczba postów: 317
Dołączył: 23-06-2010
Post: #15
RE: Programowanie w języku C w środowisku AVR Studio4
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?

--= SWL SP6-01-396 =--
15-01-2012 9:08
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP4EJT Offline
Marcin
****

Liczba postów: 340
Dołączył: 06-05-2011
Post: #16
RE: Programowanie w języku C w środowisku AVR Studio4
(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 Smile
nie bardzo wiem o co chodzi z tą prośbą - jaśniej proszę Smile
(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
İmage
2. W AVR Studio 4 .... menu "Tools", "Program AVR", "Connect" i wybierasz z lewej rodzaj posiadanego programatora.
İmage
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 !


Załączone pliki
.zip  DDS-SP4EJT.zip (Rozmiar: 161.69 KB / Pobrań: 1073)
(Ten post był ostatnio modyfikowany: 15-01-2012 18:45 przez SP4EJT.)
15-01-2012 18:14
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ2EER Offline
Jacek sk
***

Liczba postów: 182
Dołączył: 17-06-2009
Post: #17
RE: Programowanie w języku C w środowisku AVR Studio4
Witam - u mnie programator na płytce jest widoczny jako:


Załączone pliki Miniatury
İmage
(Ten post był ostatnio modyfikowany: 15-01-2012 18:32 przez SQ2EER.)
15-01-2012 18:31
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP4EJT Offline
Marcin
****

Liczba postów: 340
Dołączył: 06-05-2011
Post: #18
RE: Programowanie w języku C w środowisku AVR Studio4
Czy łączyłeś się już z tą płytą za pomocą innego programu niż AVRStudio ? np. przy pracy z Bascomem
Czy twoja płytka to jest to : http://www.zestawyuruchomieniowe.pl/prod...product=20
(Ten post był ostatnio modyfikowany: 15-01-2012 18:55 przez SP4EJT.)
15-01-2012 18:55
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ2EER Offline
Jacek sk
***

Liczba postów: 182
Dołączył: 17-06-2009
Post: #19
RE: Programowanie w języku C w środowisku AVR Studio4
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:


Załączone pliki Miniatury
İmage
15-01-2012 19:04
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP4EJT Offline
Marcin
****

Liczba postów: 340
Dołączył: 06-05-2011
Post: #20
RE: Programowanie w języku C w środowisku AVR Studio4
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 Smile ). 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ę
(Ten post był ostatnio modyfikowany: 16-01-2012 12:44 przez SP4EJT.)
16-01-2012 12:43
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 2 gości