help w WinAVR?

Nov 19, 2005 8 Replies

Moje pytanie dotyczy help'a w AVR_Studio -tzn czy istnieje cos takiego jak np help w zwyklych kompilatorach C ( np Bilder'ze)? Czyli czy gdzies wypisane sa gotowe funkcje? Bo aktulanie staram sie zaprogramowac licznik w Atmedze8 i nie wiem jak sie do tego zabrac...Dodam ze jestem poczatkujacy w dziedziie procka...



Reasumujac jak nie ma czegos takiego jak help programowy, to jak szukac wzorow implementacji potrzbenych algorytmow np urzycia Timerow?



Za pomoc bede bardzo wdzieczny.



Rafal K.


ToR napisał(a):

W dokumentacji od konrtolera masz przykładowy kod jak włączyć timer. Jak chcesz gotowe rozwiązanie to daj znać na prv.

Ale z jakiego kompilatora korzystasz AVR-GCC? Bo w tytule posta masz ¶rodowisko WinAVR co sugeruje ¿e AVR-GCC, a pytasz siê o ¶rodowisko avr studio z atmela. W ka¿ym razie jak ko¿ystasz z AVR-GCC to jest dokumentacja bardzo obszerna

formatting link

Jeśli chodzi o inicjalizację (nie tylko timerów zresztą) to polecam ściągnąć CodeVisionAVR w wersji ewaluacyjnej i skorzystać z tamtejszego kreatora kodu, który zawsze możesz sobie po wygenerowaniu przekopiować do swojego edytora. Oczywiście pozostają kwestje etyczne jeśli kod ten zamierzasz wykorzystywać w celach zarobkowych :)

Hmm faktycznie troche namieszalem ;) A wiec tak: mam srodowisko WinAVR-Gcc a symulator AVR_Studio 4.0 ...Douczam sie pisania C na procki z kursu EDW.

Dzieki za linka :)!

A ma ktos moze jeszcze jakies linki tym razem z przykladowymi gotowymi rozwiazaniami. Bo aktulanie chce wygenerowac za pomoca timera sygnal o f=40kh i nie wiem za bardzo jak sie do tego zabrac.

Mam jakies przykladowe rozwiazania i za pomoca pdf o bebechach procka wiem co sie uaktywnia w tym timerze ale nie wiem dlaczego...I moje pytanie jak to mozna zrozumiec? Wczesniej bawilem sie w BASCOMIE i nie mam nawykow adresowania poszczeglonych adresow danych w procku,a tu w C to podstawa.Co radzicie jak mam to zaczac poznawac?

Pozdro

Rafal K.

ToR napisał(a):

Wszystko jest w dokumentacji:

f = fosc/(256 * Prescaler) gdzie f - czestotliwosc wyjsciowa, fosc - czestotliwosc zegara

No tak wiem, ale jak ustawic odpowiednie parametry Timera np: TCCR1B czy TCCR1B? Ponizej podalem przyklad kodu z jakiego ja korzystam aby nauczyc sie oprogramowywac Timer, i nie rozumiem dlaczego TCCR1A i TCCR1B sa tak ustawione...na czym to polega?

Sorry za byc moze glupie pytania ale ja poprostu tego nie widze, bo wiem ze sa odpowiednie rejestry, ale z kad wiadomo ze trzeba ja TAK a nie inaczej ustawic?

przykdlad kodu...

----------------------------------------------- void initiate(void) { TCNT1=0; OCR1A=800; OCR1B=0; TCCR1A=(1<<WGM10)|(1<<COM1B1); // dalczego takie ustawienia ???? TCCR1B=(1<<WGM13)|(1<<CS10); // // dalczego takie ustawienia ???? DDRB=0x0F; TIFR=0xFF;

}//initiate()

/************************* MAIN

*************************/ main(void) { SPH=0x04; SPL=0x5F; //np dlaczego takie ustawienie stosu ??? initiate(); while(1) { OCR1B=600; } ; }

------------------------------------------------------------------- Pozdro

Rafal K.

ToR <ToR snipped-for-privacy@o2.pl napisał(a):

Ja zaproponuję Ci taki prosty generatorek dla ATMega8

//ATMega8 #define F_CPU 1000000UL #define WAVE 40000 #define genON TCCR2|=(1<<COM20); #define genOFF TCCR2&=~(1<<COM20);

#include <avr/io.h>

int main(void) { OCR2 = F_CPU/(WAVE*2)-1; TCNT2= 0; DDRB |= (1<<PB3); //Oc2 - wyjście TCCR2 =(1<<CS20 | 1<<WGM21);//preskaler=1 i włączony tryb CTC while(1) { // genON;//na PB3(Oc2) generowana jest fala prostokątna o częstotliwości 40kHZ // // genOFF;//PB3(Oc2)= PORTB,PB3 . // } return(0); }

Ale po "co jest co" , zapraszam do dokumentacji tego proca. Bez podstawowej znajomości architektury proca ... makabra :(

Piotrek

Wielkie gdzieki za helpa ;). A wiec z koro mam juz niezbedny -bo wlasciwy kod zabieram sie to studiowania "bebechow" mam tylko nadzieje ze bede wiedzial co jest do czego no chyba ze to dopiero z czasem przyjdzie :>.

Pozdro, and one more time thx.

Rafal K.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required