реклама на сайте
подробности

 
 
> WinAVR или ..., стоит ли?
ra9ftm2
сообщение May 6 2006, 13:34
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 5-03-06
Пользователь №: 14 965



Вот все пытаюсь какой-нить пример запустить на WinAVR, никак не могу ничего найти подходящего.
Простые штучки получается откомпилить и они прослеживаются в aStudio. Типа этого:
#include <avr/io.h>
#include <avr/delay.h>
void ioinit (void)
{DDRD=0xFF;DDRC=0xFF;}

int main(void)
{ ioinit();
while(1)
{ PORTD= 0xff; _delay_ms(10);PORTD=0;}
return (0);}

Но хочется чего-то более сложного.
В примерах, которые мне попадаются, используются левые типы типа BYTE, BIT и т.п.
Левые функции, которые я не могу найти в папках winavr\avr\include\... Например outp(0xff,DDRB);

Вот только что нашел очень хороший исходник-библиотеку от Alechin здесь http://electronix.ru/forum/index.php?showtopic=10934&st=0 - "Драйвер граф. дисплея МТ12864" - мне как раз его и нужно оживить. Засунул все в aStudio проект. И результат - куча ошибок.

МК atmega8, просты программки работают, все прошивается и т.д.
Раньше имел дело только с асемблером. В Си несколько сложнее sad.gif
Ни один пример, который встречал, пока не удалось откомпилить...

Может стОит IAR искать, скачивать, крякать, запускать... ?
Просто такое ощущение, что стандартных библиотек в WinAVR вообще по минимуму.

Пожалуйста, подскажите как быть...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ra9ftm2
сообщение May 14 2006, 03:00
Сообщение #2





Группа: Участник
Сообщений: 11
Регистрация: 5-03-06
Пользователь №: 14 965



Пересобрал этот пример с ЖК дисплеем под WinAVR+aStudio.
Пришлось конечно попыхтеть но так хато хоть в коде разобрался.
Там есть переменные(массивы) - шрифты, которые занимают много места для Mega8.
Конечно оптимизация и т.д., но всеравно не входит:

AVR Memory Usage:
-----------------
Device: atmega8
Program: 3516 bytes (42.9% Full)
(.text + .data + .bootloader)
Data: 616 bytes (60.2% Full)
(.data + .bss + .noinit)
Build succeeded with 0 Warnings...

Особенно при добавлении таких новых переменных растет секция Data. Это вообще что такое? Оперативная память или чего? Если так может у WinAVR есть какое-нить волшебное слово перед определением переменной? (типа volatile чтоб оптимизация не работала...)

Вот даже если такую конструкцию добавляю сразу растет секция Data:
BYTE zero[]=
{
0x00, 0xf8, 0xfe, 0x06, 0x03, 0x83, 0xc3, 0x63, 0x33, 0x1e, 0xfe, 0xf8,
0x00, 0x07, 0x1f, 0x1e, 0x33, 0x31, 0x30, 0x30, 0x30, 0x18, 0x1f, 0x07,
};

Ах да, все это работает когда я банально заменил файлик avr-gcc.exe на avr-c++.exe у WinAVR...

А так все работает, только у единственного шрифта который входит и то пришлось маленькие английские и все буквы что ниже закоментировать... sad.gif
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 21:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.0138 секунд с 7
ELECTRONIX ©2004-2016