CodeVision AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение ARV »

юрик Воронеж писал(а):А как же так - вроде программа сама это ставит :shock:
ноги у проблемы растут из этого места: хотите, чтобы ваши программы работали всегда и так, как вы сами хотите? не позволяйте им что-то "ставить" самим - делайте ВСЕ САМИ. в частности, забросьте CodeVision и научитесь работать с настоящим Си по-настоящему, взяв WinAVR.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

Re: CodeVision AVR в вопросах и ответах

Сообщение *Trigger* »

Юрик, напиши после

Код: Выделить всё

#include <tiny2313.h>

вот это

Код: Выделить всё

#include <delay.h>
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

Re: CodeVision AVR в вопросах и ответах

Сообщение Apparatchik »

юрик Воронеж писал(а):Тооочна! А как же так - вроде программа сама это ставит :shock:

А откуде же ей знать что вы будите использовать функцию delay
«И всё-таки она вертится!»
юрик Воронеж
Собутыльник Кота
Сообщения: 2513
Зарегистрирован: Вс дек 26, 2010 14:30:04
Откуда: Воронеж, пгт Рамонь

Re: CodeVision AVR в вопросах и ответах

Сообщение юрик Воронеж »

у меня снова вопросы - почему, когда код такой
/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.4 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date : 09.07.2011
Author :
Company :
Comments:


Chip type : ATtiny2313
Clock frequency : 4,000000 MHz
Memory model : Tiny
External RAM size : 0
Data Stack size : 32
*****************************************************/

#include <tiny2313.h>
#include <delay.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Input/Output Ports initialization
// Port A initialization
// Func2=In Func1=In Func0=Out
// State2=T State1=T State0=0
PORTA=0x00;
DDRA=0x01;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P


PORTB=0xFF;
DDRB=0x00;

// Port D initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x00;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
GIMSK=0x00;
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Universal Serial Interface initialization
// Mode: Disabled
// Clock source: Register & Counter=no clk.
// USI Counter Overflow Interrupt: Off
USICR=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;

while(PINB.0==0)
{


}
while(PINB.0==0)
{
while(1)
{
PORTA.0=1;
delay_ms(500);
PORTA.0=0;
delay_ms(500);
while(PINB.1==0)
{


}
while(PINB.1==0)
{
while(1)
{
PORTA.0=1;
delay_ms(450);
PORTA.0=0;
delay_ms(450);

}
}

}

он ругается -
CodeVisionAVR писал(а):Error: C:\cvavr2\bin\Exe\êíîïî÷êè.c(148): no final }

А когда так
/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.4 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date : 09.07.2011
Author :
Company :
Comments:


Chip type : ATtiny2313
Clock frequency : 4,000000 MHz
Memory model : Tiny
External RAM size : 0
Data Stack size : 32
*****************************************************/

#include <tiny2313.h>
#include <delay.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Input/Output Ports initialization
// Port A initialization
// Func2=In Func1=In Func0=Out
// State2=T State1=T State0=0
PORTA=0x00;
DDRA=0x01;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P


PORTB=0xFF;
DDRB=0x00;

// Port D initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x00;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
GIMSK=0x00;
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Universal Serial Interface initialization
// Mode: Disabled
// Clock source: Register & Counter=no clk.
// USI Counter Overflow Interrupt: Off
USICR=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;

while(PINB.0==0)
{


}
while(PINB.0==0)
{
while(1)
{
PORTA.0=1;
delay_ms(500);
PORTA.0=0;
delay_ms(500);

}
}

}

нет?
Плиз скажите!
Ничто из ниоткуда ни появляется и ничто вникуда не пропадает!
demiurg301
Опытный кот
Сообщения: 812
Зарегистрирован: Ср мар 18, 2009 21:14:33

Re: CodeVision AVR в вопросах и ответах

Сообщение demiurg301 »

юрик Воронеж

Вродеж коомпилятор явно тебе сказал - нет закрывающей функцию main скобки. Это случается когда у тебя скобка потерялась ВЫШЕ этой функции. Возьми в привычку весь код разбивать на ЭТАЖИ.

А нет - у тебя всё проще - скобки посчитай - "{" -7, "}"-5
юрик Воронеж
Собутыльник Кота
Сообщения: 2513
Зарегистрирован: Вс дек 26, 2010 14:30:04
Откуда: Воронеж, пгт Рамонь

Re: CodeVision AVR в вопросах и ответах

Сообщение юрик Воронеж »

:oops:
Ничто из ниоткуда ни появляется и ничто вникуда не пропадает!
юрик Воронеж
Собутыльник Кота
Сообщения: 2513
Зарегистрирован: Вс дек 26, 2010 14:30:04
Откуда: Воронеж, пгт Рамонь

Re: CodeVision AVR в вопросах и ответах

Сообщение юрик Воронеж »

ура! Робит!
Ничто из ниоткуда ни появляется и ничто вникуда не пропадает!
Edaker
Родился
Сообщения: 3
Зарегистрирован: Сб фев 05, 2011 17:03:09

Re: CodeVision AVR в вопросах и ответах

Сообщение Edaker »

Здравствуйте... Я только учусь так что мой глупый вопрос....
Мне надо отсчитать время между 2 импульсами.. И вот вопрос Обрабатывать прерывании EXT_INT0 и TIM0_OVF или есть что то другое для этих целей?
Забыл МК Мега8
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Мастер Ломастер »

Edaker писал(а):Здравствуйте... Я только учусь так что мой глупый вопрос....
Мне надо отсчитать время между 2 импульсами.. И вот вопрос Обрабатывать прерывании EXT_INT0 и TIM0_OVF или есть что то другое для этих целей?
Забыл МК Мега8
все зависит от ваших условий. в принципе, можно использовать режим захвата таймера №1.
битва с дураками проиграна, победители торжествуют. слава победителям!
Edaker
Родился
Сообщения: 3
Зарегистрирован: Сб фев 05, 2011 17:03:09

Re: CodeVision AVR в вопросах и ответах

Сообщение Edaker »

Мастер Ломастер писал(а):
Edaker писал(а):Здравствуйте... Я только учусь так что мой глупый вопрос....
Мне надо отсчитать время между 2 импульсами.. И вот вопрос Обрабатывать прерывании EXT_INT0 и TIM0_OVF или есть что то другое для этих целей?
Забыл МК Мега8
все зависит от ваших условий. в принципе, можно использовать режим захвата таймера №1.


А можно по подробней. А то моим методом стабильно получается до 200 Гц а мне надо примерно до 500 вот мучаюсь уже 2 день...
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Мастер Ломастер »

все подробности изложены в Timer1 Capture Mode - см. даташит.
битва с дураками проиграна, победители торжествуют. слава победителям!
Аватара пользователя
wellcom
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Чт фев 24, 2011 13:00:49

Re: CodeVision AVR в вопросах и ответах

Сообщение wellcom »

Доброго времени суток! Подскажите плиз как в CVAVR 2.05 число типа int умножить на число типа float или double (а именно, какоето число * 0,01)

делал так:

unsigned int data;// код состояния датчика
float data2;
.....
.....
data2 = data*0,01;

а он мне в ответ на строчку data2 = data*0,01 вот такое:
Warning: ............(103): expression with possibly no effect

и действительно, в симуляторе ПРОТУЕС, переменная data2 имеет нормальный адрес а в поле "тип" - unspecified

пробовал еще double подставлять, а CVAVR матюкается мол, тип доубле плоддерживается только в профешинал версии....хотя вроде крякнута и пишет что профешнал.


подскажите как можно в даном случае число умножить на 0,01. Спасибо
:solder: 32-х ядерный процессор из П213В
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Мастер Ломастер »

может, все-таки не 0,01 а 0.01 - запятая в Си - это тоже ОПЕРАТОР, а ТОЧКА - это разделитель целой и дробной части (в константе).
битва с дураками проиграна, победители торжествуют. слава победителям!
Аватара пользователя
wellcom
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Чт фев 24, 2011 13:00:49

Re: CodeVision AVR в вопросах и ответах

Сообщение wellcom »

так и есть, (я ступил :oops: ) , поставил точку, после етого на строку уже не матюкается.
Теперь стала другая пробл, как вывести с помощью sprintf на ЛСД ето число, что бы было с точкой (например число после умножения = 253,23)???
:solder: 32-х ядерный процессор из П213В
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Мастер Ломастер »

наверное, формат %6.2f вам поможет, ну и в параметрах компилятора поддержку printf-float не забудьте включить
битва с дураками проиграна, победители торжествуют. слава победителям!
Аватара пользователя
wellcom
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Чт фев 24, 2011 13:00:49

Re: CodeVision AVR в вопросах и ответах

Сообщение wellcom »

Вроде помогло, большое спасибо. :) Еще бы разобраться что ето значит...%6.2f .. :roll:
:solder: 32-х ядерный процессор из П213В
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Мастер Ломастер »

wellcom писал(а):Еще бы разобраться что ето значит...%6.2f .. :roll:
букварь по Си любого автора, - и читать, читать, читать...
битва с дураками проиграна, победители торжествуют. слава победителям!
Аватара пользователя
IfoR
Поставщик валерьянки для Кота
Сообщения: 2029
Зарегистрирован: Сб ноя 15, 2008 10:09:56
Откуда: г. Тула
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение IfoR »

Дык не обязательно именно C. printf является стандартным не только для C. :)
wellcom, у вас объявляется поле шириной 6 символов с 2-мя числами после запятой. Тип поля: float.

Подробнее: http://ru.wikipedia.org/wiki/Printf
Изображение
/dev/urandom - гигабайты информации.

OS: openSUSE 13.2 (x86_64)
Аватара пользователя
wellcom
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Чт фев 24, 2011 13:00:49

Re: CodeVision AVR в вопросах и ответах

Сообщение wellcom »

Спасибо, уже нашел, буду разбираться (Лебедев, стр 265 ) :)
:solder: 32-х ядерный процессор из П213В
demiurg301
Опытный кот
Сообщения: 812
Зарегистрирован: Ср мар 18, 2009 21:14:33

Re: CodeVision AVR в вопросах и ответах

Сообщение demiurg301 »

Решил исользовать библиотеку PCF8583 из CVAVR 1.25.5 . Но там нет функции для таймера. Подскажите в старших версиях CVAVR они добавлены ? Или может кто сам дописывал эти функции ? - поделитесь пожалуйста.
Ответить

Вернуться в «AVR»