Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Помощ за AVR-GCC
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=1869
Страница 1 от 1

Автор:  Svetoslav40 [ Сря Фев 22, 2006 7:02 pm ]
Заглавие:  Помощ за AVR-GCC

Здр. колеги. Както повечето активни потребители на този форум знаят, отскоро започнах да се мъча с AVR-и. Софтуерната развоина среда на която се спрях е AVR Studio с плъгина за AVR-GCC, a там нещата стоят по-разли4но от CCS. Pроблема ми сега е в това че хал хабер си нямам от тоя AVR-GCC. Та питанката ми е дали някои има желание да ми помогне с няколко или поне един проект писан на въпросната среда и ако може за Атмега16. Както каза Дедо Добре, по лесно е да се учиш, като гледаш какво и как са правили хората.

С уважение: Светолсав4о

Автор:  Balkana [ Сря Фев 22, 2006 8:58 pm ]
Заглавие: 

http://www.avrfreaks.net

Ще намериш повече от примерче.
Освен това вървяха към GCC-то няколко примера - GCCTEST

Мисля че това ще ти отговори на почти всички въпроси.

Автор:  Svetoslav40 [ Сря Фев 22, 2006 11:59 pm ]
Заглавие: 

Благодаря за отговора. Аз може да съм неграмотен, но не и малоумен. Интернет е пълен с всякакви примери, туториали и тем подобни, но идеята е като получа от някого едно примерче, да мога на български да питам защо е така направено (програмно), а не по друг начин, вместо да се чудя защо някои си испанец е написал някаква програмка по начина по които я е написал а не по другия които на мене ми се струва за по-удачен, и не получ отговор защото нямал нет, компа му бил откраднат или други причини. Все пак аз зададох въпроса или искането си в раздел "АКАДЕМИЯ" на форум за Ммикроконтролери, а не в раздел "How to find information on the Net" в форум "Internet for Dumies" (ако има такъв).

Моля да бъда изинен, но мнението ми е, че в много от форумите, 50% от постовете са с някакви тъпи отговори, авторите на които просто искат да си вдигнат реитинга. Следя и няколко немски форума, в които нито един път не съм видял някои да се озъби на някого защото пуснал постинга си 2 пъти, било то по погрешка или нарочно, а още по-малко заради синтактични или граматични грешки. Ако някои потребител на въпросните фруми не разбере нещо, то тои просто иска уточнение или задава въпроса отново по начина по които тои си мисли че е зададен въпроса. От тая гледна точка, ония са 1000000години напред.

Съгласен съм със следното:

Цитат:
От: Wise
До: Svetoslav40
Пуснато на: Вто Фев 21, 2006 10:49 pm
Заглавие: Re: :)
Нищо лично , колега. Просто не е етично да караш останалите
да се гърчат с твоите писанки. Не може да четеш всичко, а когато
не е и на български - идва множко. След време ще го разбереш.

Но все пак решението на един проблем не е да го загърбиш...

Много се извинявам ако съм обидил някого, но все пак комунизъма си замина, и ние имаме право на мнение.

Горното го прочетох 2 пъти, и по лично моя преценка го смятам за валидно мнение!!! И все пак ако на някои не му харесва как и какво съм написал, то моля да ми бъде казано на нормален език а не да и се нахвърля.

С уважение Светослав40.

Автор:  asp [ Чет Фев 23, 2006 12:52 am ]
Заглавие: 

ето тука едно сорсче от мен няма особено много коментари но бачка

Прикачени файлове:
kbd_lcd_v.1.0.c [8.44 KiB]
314 пъти

Автор:  Balkana [ Чет Фев 23, 2006 2:19 am ]
Заглавие: 

Светославчо: Посочих ти пътя, по който съм минал собственоръчно, и се оправих без да се наложи да питам (отне ми точно половин ден да се оправя с компилатора).

Примерите които съм ти посочил (GCCTEST) съм ги гледал в подробности, и мога да коментирам всичко, ако някой има желание. За старт с компилатора това е най-доброто дето ми е попадало пред погледа.

Най-качествена помощ ще получиш, ако питаш по-конкретно.

Автор:  Svetoslav40 [ Чет Фев 23, 2006 12:57 pm ]
Заглавие: 

Съгласен съм, но ти сигурно си имал вече някакви познания за този тип Ц. Но както и да е, аз ще се мъча докато се науча, и ше задавам въпроси, било то и тъпи.

ето ми го и първия проблем: като се опитам да компилирам сорса които ми прати asp, avr studio-то ми забива, неще да се компилва.....взима всички ресурси на процесо и до там. Това го пробвах на 2 компютъра и все тая. Някои може ли да го пробва при себе си, и да ме насочи къде може да е проблема.

втория въпрос:
Код:
for(char j=0; j<20; j++) delay(255);

правилно ли си мисля че горното е направно по този начин за да се постигне Delay с продължителност от 20х255=5100мс защото GCC няма Delay по продължителен от 255мс?

Трети въпрос:
Код:
DDRD |= (1<<row1)|(1<<row2)|(1<<snd); // outputs

DDRD &=(~(1<<col1))|(~(1<<col2))|(~(1<<col3))|(~(1<<col4));// inputs


как разбира, или по какво разбира компилатора за кои бит става въпрос, и за какво служи "~"?

Автор:  ДедоБоре [ Чет Фев 23, 2006 2:35 pm ]
Заглавие: 

ще си кача довечера в къщи едно студио, да мога да ти помогна
сега не мога :cry: дано не е жизнено важно...

Автор:  Svetoslav40 [ Чет Фев 23, 2006 2:48 pm ]
Заглавие: 

Разбира се че нее жизнено важно. Благодаря предварително.

Пак въпрос: Каде се намират ГЦЦ библиотеките на AVR-GCC? Защото тръгнах да търся из компа посочените в примерчето библиотек, но ги намира само из разните други инсталации които съм пускал (WinAwr, LCC-нещо си и в Crossworks).

Автор:  ДедоБоре [ Чет Фев 23, 2006 3:05 pm ]
Заглавие: 

виж сега... avr-gcc е по-широко понятие. аз го ползвам в unix и там библиотеките се намират в /usr/local/avr/lib
имам предвид crt*, libc, libm и приятели. но това зависи от няколко параметъра, които се задат при инсталация и те може да варират, така че не е догма. аз по принцип не ги ползвам библиотеките

разни полезни дефиниции на регистри и битове във тях се намират в /usr/local/avr/include/avr
например, за мега16, регистрите са описани в iom16.h
ако искаш да ползваш прекъсвание, трябва да инклуднеш signal.h
и т.н.

примерите при мен са в /usr/local/share/doc/avr-libc/examples
много ясен пример за начало е demo. кода (demo.c) има напълно достатъчни коментари, а какво става е описано в demo.pdf
ако при тебе ги няма, мога да ти ги пратя

какво и къде става в win/студио - не знам. затова ще го качвам, да мога да ти помогна

Автор:  Svetoslav40 [ Чет Фев 23, 2006 4:28 pm ]
Заглавие: 

Абе, дане би да му трябва на тоwа студио ВинАвр и там да са библиотеите? Защото само там намерих демо.ц фаил, и там (във папката ВинАвр) има и папка Avr-libc-1.4.3.

Автор:  ДедоБоре [ Чет Фев 23, 2006 4:41 pm ]
Заглавие: 

да не стане някаква грешка - demo.c е твърде разпространено име
тука ти пращам файловете, които идват с avr-gcc

Прикачени файлове:
demo.zip [10.92 KiB]
224 пъти

Автор:  Svetoslav40 [ Чет Фев 23, 2006 5:59 pm ]
Заглавие: 

Ами грешка няма. както се вижда от атачмента, е избран WinAvr като външен инструмен. И маи на там отиват нещата, студиото да работи само с WinAvr... С демо.ц от моята WinAvr папка, се компилва сорса както трябва, но никаде нищо не излиза по краката на пика, избрал съм верния чип, честотата и фусовете трябва да са наред защото като му кача:
Код:
#include <avr/io.h>
#include <avr/delay.h>

int main(void)
{
   
    DDRB = 0xfd;   

 
    while (1)
   {
   if bit_is_clear (PINB,1) {
   PORTB = 0xfd;   
   _delay_ms(250);
    _delay_ms(250);
    _delay_ms(250);
     _delay_ms(250);
   PORTB=0x02;
   _delay_ms(250);
    _delay_ms(250);
    _delay_ms(250);
     _delay_ms(250);
}
}
}
Си мига диодчето както трябва през 1 секунда при подаване на маса към В1.
А като се пробвам да компилирам сорса на Дедо Добре, ми дава следната грешка и спира:
Цитат:
../demo.c:86: warning: implicit declaration of function `timer_enable_int'
...
...
../demo.c:86: warning: implicit declaration of function `timer_enable_int'

Започвам да се нервя лека по лека :(

Прикачени файлове:
Коментар на файл: Project options
avr projopt.JPG
avr projopt.JPG [ 39.38 KiB | Прегледано 3564 пъти ]

Автор:  ДедоБоре [ Чет Фев 23, 2006 9:26 pm ]
Заглавие: 

ся... не се нерви, няма да стане нищо с нервене :wink:

във файла, който ти пратих, 86-ти ред е съвсем друг : #else
реда, на който се вика фунцията timer_enable_int() е 100
защо се е получило такова разминаване?

за да ти реве компилатора с такава грешка, значи, че тази фунция той я среща за първи път на това място. т.е. не му е позната.
а не му е позната, вероятно, защото нямаш
#include <avr/interrupt.h> (там е прототипа на тази функция)
и понеже не може да я намери, не може да линкне работещ файл.

но дори и да направи нещо, програмата няма да работи, защото тя е писана за прекъсвания, а ти не ги пуснаш. точно тази функция разрешава побитово определени прекъсвания.

ПС: какво прави опцията -DF_CPU=1000000?

Автор:  ДедоБоре [ Пет Фев 24, 2006 12:17 am ]
Заглавие: 

качих си студиото (45мб? :roll: )
направих проект
при опит за билд, ревна:
за да се билден avr-gcc проект, трябва да е качен WinAvr. дръпни си го от winavr.sourceforge.net
сега ще го дръпна, после ще допиша поста

добре - и той се качи, няма проблеми
няколко (за)бележки:
- в Projet Options трябва да се добави в Include Directories c:\winavr\avr\include\ ако го няма
- от септемви 2005 са ровили в библиотеката (libc) и са решили да сменят малко стила на пускане и спиране на специализирани прекъсвания. има дебела дискусия тук http://lists.gnu.org/archive/html/avr-gcc-list/2005-09/msg00151.html, но на мен не ми се четеше цялата. същността е, че някои стари функции са преместени в compat/deprecated.h и за да се ползват, трябва да се инклудне и той. не ме кефи, но е факт... все пак, трябва да се прочете цялата дискусия, за да се знае как да се пишат сорсове от тук нататък.
- дописах един комплект if-ве за регистрите на мега8. не ми се рови за 16, трябва да се провери дали имената са същите или да се добави нов.

сорса, приложен тука вече се компилира. дано да е от помощ

Прикачени файлове:
demo-my.c [3.09 KiB]
296 пъти

Автор:  Svetoslav40 [ Нед Фев 26, 2006 11:39 am ]
Заглавие: 

Хммммм...
Сорса които ми прати Дедо Добре го компилирах за атмега163, и тръгна на моя атмега16 без проблем, явно разликите са малко а и атмега 16 е заместител на атмега 163, поне така пише на саита на тмел. Пробвах да направя следното:
Код:
#elif defined(__AVR_ATmega16__)

#  define OC1 PD5
#  define DDROC DDRD
#  define OCR OCR1A
но не се компилира, явно има някаква разлика между iom16.h и iom163.h което е нормално, инак нямаше да правят нова разработа (поне така си мисля), рових се из двата фаила но не открих разлика в адреси и регистри свързани с програмата, а може и да не съм гледал както трябва. Ще може ли някои да даде малко акъл, каде да търся грешката.

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/