Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 15.03.2014, 17:38  
kkozz
Частый гость
 
Регистрация: 01.09.2010
Сообщений: 11
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
kkozz на пути к лучшему
По умолчанию Ошибки при компиляции программы в СodeVision

здравствуйте, я только разбираюсь
вот программа по пересылке данных по UART из книги да АВР студио4
для аттини2313

#include ‹avr/io.h› //средства ввода/вывода периферии контроллера. Заголовочный файл подключает определения "ввода / вывода" для устройства, используемого в проекте (Project-›Configuration options-›Device)
#include ‹string.h›//для работы со строками, в данной программе для использования функции вычисления длинны строки strlen

//начало функция инициализации UART
void UART_INIT()
{
UCR|=(1‹‹3);//в третий бит (TXEN) записали единицу, этим мы разрешили работу передатчика
UBRR=0x17;//23(dec) скорость передачи 9600 бод при частоте мк 3.6864Мгц
}
//конец функция инициализации UART



//НАЧАЛО основная программа(функция)
int main(void)
{
UART_INIT(); /* инициализировать(т.е. задать как UART будит работать) приемопередатчик UART */

static char stroka[37]="привет, это твой микроконтроллер =)\r\n";//массив байт char stroka[] будит содержать предложение для отправки, обращаться к элементам массива(байтам), можно так stroka[3] в этом байте хранится символ 'в'. Массив будит состоять из 37 элементов от 0 до 36 включительно, 37 элемент символ конца строки "stroka[37]=0x00"

//переменная будит хранить количество байт содержащиеся в массиве байт
static int dlina_stroki=0;
dlina_stroki = strlen(stroka);//определяем количество байт массива stroka, при помощи функции strlen и присваиваем количество переменной dlina_stroki



int i=0;//переменная i будит содержать индекс байта массива, подлежавшего для отправки



//НАЧАЛО бесконечный цикл
while(1)
{


if(USR&(1‹‹5) && i‹dlina_stroki)//если регистр ввода вывода UDR пуст и текущий байт что мы сейчас отправляем не последний, тогда
{
UDR = stroka[i];//передать через UART один байт
i=i+1;//перейти к следующему байту
}


}
//КОНЕЦ бесконечный цикл



}
//КОНЕЦ основная программа(функция)

не получается ее скомпелировать в кодевижн
выдает такие ошибки
Error: D:\Temp\AVR\USART_A\USART_A.c(19): too many initializers
Error: D:\Temp\AVR\USART_A\USART_A.c(27): must declare first in block
подскажите пожалуйста что нужно сделать, а то застрял на этом
Реклама:
kkozz вне форума  
Непрочитано 15.03.2014, 17:41  
Ara41
Почётный гражданин KAZUS.RU
 
Регистрация: 30.09.2006
Сообщений: 1,560
Сказал спасибо: 158
Сказали Спасибо 661 раз(а) в 431 сообщении(ях)
Ara41 на пути к лучшему
По умолчанию Re: ошибки при компиляции программы в СodeVision

Сообщение от kkozz Посмотреть сообщение
вот программа по пересылке данных по UART из книги да АВР студио4 для аттини2313
....
не получается ее скомпелировать в кодевижн
ну и откомпилируйте в AVRStudio
Ara41 вне форума  
Непрочитано 15.03.2014, 17:44  
kkozz
Частый гость
 
Регистрация: 01.09.2010
Сообщений: 11
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
kkozz на пути к лучшему
По умолчанию Re: ошибки при компиляции программы в СodeVision

пробоавл, тоже кучу ошибок выдает, но там я вообще ничего не понимаю.
похоже еще какой-то инклюд подключить надо.
kkozz вне форума  
Непрочитано 15.03.2014, 17:56  
Ara41
Почётный гражданин KAZUS.RU
 
Регистрация: 30.09.2006
Сообщений: 1,560
Сказал спасибо: 158
Сказали Спасибо 661 раз(а) в 431 сообщении(ях)
Ara41 на пути к лучшему
По умолчанию Re: ошибки при компиляции программы в СodeVision

Сообщение от kkozz Посмотреть сообщение
пробоавл, тоже кучу ошибок выдает
похоже, это исходник для AT90S2313, а не для аттини2313
Ara41 вне форума  
Непрочитано 15.03.2014, 18:08  
kkozz
Частый гость
 
Регистрация: 01.09.2010
Сообщений: 11
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
kkozz на пути к лучшему
По умолчанию Re: ошибки при компиляции программы в СodeVision

Сообщение от Ara41 Посмотреть сообщение
охоже, это исходник для AT90S2313, а не для аттини2313
точно, но разве он не может работать на ATtiny2313?
до этого делал пердачу одного символа через УАРТ, все работало.
значит дело в файле string.h
может какой-то другой нужно подключить?
kkozz вне форума  
Непрочитано 15.03.2014, 18:14  
kkozz
Частый гость
 
Регистрация: 01.09.2010
Сообщений: 11
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
kkozz на пути к лучшему
По умолчанию Re: ошибки при компиляции программы в СodeVision

в АВР студио исправил проц на AT90S2313 и все скомпилировалось )
теперь хочется осилить для CV.
и с другой стороны, я ведь использую ATtiny2313.
kkozz вне форума  
Непрочитано 15.03.2014, 18:53  
BolshoyK
Гражданин KAZUS.RU
 
Регистрация: 25.11.2009
Сообщений: 609
Сказал спасибо: 37
Сказали Спасибо 140 раз(а) в 72 сообщении(ях)
BolshoyK на пути к лучшему
По умолчанию Re: ошибки при компиляции программы в СodeVision

kkozz, в кодевижене определение переменных должно идти в начале функции.
Error: D:\Temp\AVR\USART_A\USART_A.c(27): must declare first in block
а у тебя UART_INIT(); стоит перед определением переменных
BolshoyK вне форума  
Непрочитано 15.03.2014, 19:25  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,856
Сказал спасибо: 2,532
Сказали Спасибо 11,771 раз(а) в 5,896 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: ошибки при компиляции программы в СodeVision

kkozz, воспользуйтесь Wizard-ом, он создаст "рыбу" с инициализациями контроллера. И там будет указано "Здесь глобальные переменные" и "Здесь локальные переменные". Он очень не любит объявление переменных где попало.
Есть там некоторые вкусности, генерируемые автоматом. Поэкспериментируйте.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 15.03.2014, 19:25  
kkozz
Частый гость
 
Регистрация: 01.09.2010
Сообщений: 11
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
kkozz на пути к лучшему
По умолчанию Re: ошибки при компиляции программы в СodeVision

переделал
Код:
#include ‹io.h› 
#include ‹string.h›//для работы со строками, в данной программе для использования функции вычисления длинны строки strlen

int i;//переменная i будит содержать индекс байта массива, подлежавшего для отправки
char stroka[37];
int dlina_stroki;                         
//начало функция инициализации UART
void UART_INIT()
{
UCR|=(1‹‹3);//в третий бит (TXEN) записали единицу, этим мы разрешили работу передатчика
UBRR=0x17;//17(dec) скорость передачи 9600 бод при частоте мк 4Мгц
}
//конец функция инициализации UART

//НАЧАЛО основная программа(функция)
void main(void)
{

UART_INIT(); /* инициализировать(т.е. задать как UART будит работать) приемопередатчик UART */

stroka = "привет, это твой микроконтроллер =)\r\n";

//переменная будит хранить количество байт содержащиеся в массиве байт
dlina_stroki = strlen(stroka);//определяем количество байт массива stroka, при помощи функции strlen и присваиваем количество переменной dlina_stroki
i=0;
//НАЧАЛО бесконечный цикл
while(1)
{
if(USR&(1‹‹5) && i‹dlina_stroki)//если регистр ввода вывода UDR пуст и текущий байт что мы сейчас отправляем не последний, тогда
    {
      UDR = stroka[i];//передать через UART один байт
      i=i+1;//перейти к следующему байту
    }
}
//КОНЕЦ бесконечный цикл
}
//КОНЕЦ основная программа(функция)
теперь ошибка такая Error: D:\Temp\AVR\USART_A\USART_A.c(21): the expression must be a modifiable lvalue
kkozz вне форума  
Непрочитано 15.03.2014, 19:37  
Ara41
Почётный гражданин KAZUS.RU
 
Регистрация: 30.09.2006
Сообщений: 1,560
Сказал спасибо: 158
Сказали Спасибо 661 раз(а) в 431 сообщении(ях)
Ara41 на пути к лучшему
По умолчанию Re: ошибки при компиляции программы в СodeVision

методом тыка скомпилировать исходник для одного контроллера под другой у Вас получится не сразу =)
Сравните заголовочные файлы двух контроллеров, особенно обратив внимание на символьные имена, касающиеся UART.
Ara41 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бортовой комп (почти) теперь и у меня (+) kd_Rash Микроконтроллеры, АЦП, память и т.д 79 11.08.2011 14:23
Как влияет мощность УМЗЧ на SPL (звуковое давление) tauP10 Аудиотехника 49 23.11.2010 14:05
Микроконтроллер и управление асинхронным двигателем shum_inc Микроконтроллеры, АЦП, память и т.д 144 07.09.2010 14:09
Разрушение программы в AVR при понижении питания. Andrewg Микроконтроллеры, АЦП, память и т.д 19 09.06.2008 14:02
[Решено] Сборник перлов любителей кабельщины mikesmith Отвлекитесь, эмбеддеры! 135 14.08.2007 15:49


Часовой пояс GMT +4, время: 09:14.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot