Koleżankom i Kolegom Radioamatorom, Krótkofalowcom,
Konstruktorom i Waszym Rodzinom – w tych trudnych czasach –
po dotkliwej awarii naszego forum
Pogodnego czasu po Bożym Narodzeniu,
Dosiego Nowego Roku
oraz Radosnych Trzech Króli

Życzy Zespół Home Made

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Programowanie w języku C w środowisku AVR Studio4
#11
Wink 
Code:
#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
Reply
#12
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 =--
Reply
#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
Nie otrzymasz koni wyścigowych krzyżując dwa osły
Reply
#14
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.
Reply
#15
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 =--
Reply
#16
(14-01-2012, 17:08)SQ6OXK Wrote: 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, 20:51)SQ6IYY Wrote: ...
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, 21:57)SQ6OXK Wrote: 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
(14-01-2012, 23:27)SQ2EER Wrote: 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
[Image: 6701641763_2bb16e8c54_z.jpg]
2. W AVR Studio 4 .... menu "Tools", "Program AVR", "Connect" i wybierasz z lewej rodzaj posiadanego programatora.
[Image: 6701671353_1fb1fbe27a.jpg]
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 !


Attached Files
.zip   DDS-SP4EJT.zip (Size: 161.69 KB / Downloads: 1,262)
Reply
#17
Witam - u mnie programator na płytce jest widoczny jako:





Attached Files Thumbnail(s)
   
Reply
#18
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
Reply
#19
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:



Attached Files Thumbnail(s)
   
Reply
#20
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ę
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)