Отговори на тема  [ 15 мнения ] 
Помощ за AVR-GCC 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Съб Сеп 17, 2005 11:12 pm
Мнения: 95
Местоположение: Shumen
Мнение Помощ за AVR-GCC
Здр. колеги. Както повечето активни потребители на този форум знаят, отскоро започнах да се мъча с AVR-и. Софтуерната развоина среда на която се спрях е AVR Studio с плъгина за AVR-GCC, a там нещата стоят по-разли4но от CCS. Pроблема ми сега е в това че хал хабер си нямам от тоя AVR-GCC. Та питанката ми е дали някои има желание да ми помогне с няколко или поне един проект писан на въпросната среда и ако може за Атмега16. Както каза Дедо Добре, по лесно е да се учиш, като гледаш какво и как са правили хората.

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


Сря Фев 22, 2006 7:02 pm
Профил ICQ
Ранг: Популярен
Ранг: Популярен

Регистриран на: Чет Дек 01, 2005 10:42 pm
Мнения: 301
Мнение 
http://www.avrfreaks.net

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

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


Сря Фев 22, 2006 8:58 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

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

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

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

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

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

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

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

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


Сря Фев 22, 2006 11:59 pm
Профил ICQ
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Сря Фев 22, 2006 6:27 pm
Мнения: 376
Местоположение: plovdiv
Мнение 
ето тука едно сорсче от мен няма особено много коментари но бачка


Прикачени файлове:
kbd_lcd_v.1.0.c [8.44 KiB]
314 пъти
Чет Фев 23, 2006 12:52 am
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Чет Дек 01, 2005 10:42 pm
Мнения: 301
Мнение 
Светославчо: Посочих ти пътя, по който съм минал собственоръчно, и се оправих без да се наложи да питам (отне ми точно половин ден да се оправя с компилатора).

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

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


Чет Фев 23, 2006 2:19 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Съб Сеп 17, 2005 11:12 pm
Мнения: 95
Местоположение: Shumen
Мнение 
Съгласен съм, но ти сигурно си имал вече някакви познания за този тип Ц. Но както и да е, аз ще се мъча докато се науча, и ше задавам въпроси, било то и тъпи.

ето ми го и първия проблем: като се опитам да компилирам сорса които ми прати 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 12:57 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Ное 21, 2004 11:31 pm
Мнения: 10088
Мнение 
ще си кача довечера в къщи едно студио, да мога да ти помогна
сега не мога :cry: дано не е жизнено важно...


Чет Фев 23, 2006 2:35 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Съб Сеп 17, 2005 11:12 pm
Мнения: 95
Местоположение: Shumen
Мнение 
Разбира се че нее жизнено важно. Благодаря предварително.

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


Чет Фев 23, 2006 2:48 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Ное 21, 2004 11:31 pm
Мнения: 10088
Мнение 
виж сега... 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/студио - не знам. затова ще го качвам, да мога да ти помогна


Чет Фев 23, 2006 3:05 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Съб Сеп 17, 2005 11:12 pm
Мнения: 95
Местоположение: Shumen
Мнение 
Абе, дане би да му трябва на тоwа студио ВинАвр и там да са библиотеите? Защото само там намерих демо.ц фаил, и там (във папката ВинАвр) има и папка Avr-libc-1.4.3.


Чет Фев 23, 2006 4:28 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Ное 21, 2004 11:31 pm
Мнения: 10088
Мнение 
да не стане някаква грешка - demo.c е твърде разпространено име
тука ти пращам файловете, които идват с avr-gcc


Прикачени файлове:
demo.zip [10.92 KiB]
224 пъти
Чет Фев 23, 2006 4:41 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Съб Сеп 17, 2005 11:12 pm
Мнения: 95
Местоположение: Shumen
Мнение 
Ами грешка няма. както се вижда от атачмента, е избран 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 | Прегледано 3573 пъти ]
Чет Фев 23, 2006 5:59 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Ное 21, 2004 11:31 pm
Мнения: 10088
Мнение 
ся... не се нерви, няма да стане нищо с нервене :wink:

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

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

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

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


Чет Фев 23, 2006 9:26 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Ное 21, 2004 11:31 pm
Мнения: 10088
Мнение 
качих си студиото (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 пъти
Пет Фев 24, 2006 12:17 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Съб Сеп 17, 2005 11:12 pm
Мнения: 95
Местоположение: Shumen
Мнение 
Хммммм...
Сорса които ми прати Дедо Добре го компилирах за атмега163, и тръгна на моя атмега16 без проблем, явно разликите са малко а и атмега 16 е заместител на атмега 163, поне така пише на саита на тмел. Пробвах да направя следното:
Код:
#elif defined(__AVR_ATmega16__)

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


Нед Фев 26, 2006 11:39 am
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 15 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 4 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни