HomeMade
Programowanie w języku C w środowisku AVR Studio4 - Wersja do druku

+- HomeMade (http://sp-hm.pl)
+-- Dział: Oprogramowanie (/forum-84.html)
+--- Dział: Technika programowania mikroprocesorów (/forum-85.html)
+--- Wątek: Programowanie w języku C w środowisku AVR Studio4 (/thread-1161.html)

Strony: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19


RE: Programowanie w języku C w środowisku AVR Studio4 - SQ6IYY - 14-01-2012 21:51

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


RE: Programowanie w języku C w środowisku AVR Studio4 - SQ6OXK - 14-01-2012 22:57

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.


RE: Programowanie w języku C w środowisku AVR Studio4 - SQ6IYY - 14-01-2012 23:13

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


RE: Programowanie w języku C w środowisku AVR Studio4 - SQ2EER - 15-01-2012 0:27

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.


RE: Programowanie w języku C w środowisku AVR Studio4 - SQ6OXK - 15-01-2012 9:08

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?


RE: Programowanie w języku C w środowisku AVR Studio4 - SP4EJT - 15-01-2012 18:14

(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 !


RE: Programowanie w języku C w środowisku AVR Studio4 - SQ2EER - 15-01-2012 18:31

Witam - u mnie programator na płytce jest widoczny jako:


RE: Programowanie w języku C w środowisku AVR Studio4 - SP4EJT - 15-01-2012 18:55

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/product.php?id_product=20


RE: Programowanie w języku C w środowisku AVR Studio4 - SQ2EER - 15-01-2012 19:04

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:


RE: Programowanie w języku C w środowisku AVR Studio4 - SP4EJT - 16-01-2012 12:43

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_ATmega16-32/manuals/EvB_ATmega16-32_manuals.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ę