ноги у проблемы растут из этого места: хотите, чтобы ваши программы работали всегда и так, как вы сами хотите? не позволяйте им что-то "ставить" самим - делайте ВСЕ САМИ. в частности, забросьте CodeVision и научитесь работать с настоящим Си по-настоящему, взяв WinAVR.юрик Воронеж писал(а):А как же так - вроде программа сама это ставит
CodeVision AVR в вопросах и ответах
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: CodeVision AVR в вопросах и ответах
Этот пост оказался полезен? Не поленись, нажми
слева!

Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
слева!Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
- Apparatchik
- Держит паяльник хвостом
- Сообщения: 908
- Зарегистрирован: Вс май 23, 2010 13:55:42
- Откуда: Украина, Александрия
Re: CodeVision AVR в вопросах и ответах
юрик Воронеж писал(а):Тооочна! А как же так - вроде программа сама это ставит
А откуде же ей знать что вы будите использовать функцию 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);
}
}
}
он ругается -
А когда так
/*****************************************************
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);
}
}
}
нет?
Плиз скажите!
/*****************************************************
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 в вопросах и ответах
юрик Воронеж
Вродеж коомпилятор явно тебе сказал - нет закрывающей функцию main скобки. Это случается когда у тебя скобка потерялась ВЫШЕ этой функции. Возьми в привычку весь код разбивать на ЭТАЖИ.
А нет - у тебя всё проще - скобки посчитай - "{" -7, "}"-5
Вродеж коомпилятор явно тебе сказал - нет закрывающей функцию main скобки. Это случается когда у тебя скобка потерялась ВЫШЕ этой функции. Возьми в привычку весь код разбивать на ЭТАЖИ.
А нет - у тебя всё проще - скобки посчитай - "{" -7, "}"-5
-
юрик Воронеж
- Собутыльник Кота
- Сообщения: 2513
- Зарегистрирован: Вс дек 26, 2010 14:30:04
- Откуда: Воронеж, пгт Рамонь
Re: CodeVision AVR в вопросах и ответах
Ничто из ниоткуда ни появляется и ничто вникуда не пропадает!
-
юрик Воронеж
- Собутыльник Кота
- Сообщения: 2513
- Зарегистрирован: Вс дек 26, 2010 14:30:04
- Откуда: Воронеж, пгт Рамонь
Re: CodeVision AVR в вопросах и ответах
ура! Робит!
Ничто из ниоткуда ни появляется и ничто вникуда не пропадает!
Re: CodeVision AVR в вопросах и ответах
Здравствуйте... Я только учусь так что мой глупый вопрос....
Мне надо отсчитать время между 2 импульсами.. И вот вопрос Обрабатывать прерывании EXT_INT0 и TIM0_OVF или есть что то другое для этих целей?
Забыл МК Мега8
Мне надо отсчитать время между 2 импульсами.. И вот вопрос Обрабатывать прерывании EXT_INT0 и TIM0_OVF или есть что то другое для этих целей?
Забыл МК Мега8
-
Мастер Ломастер
- Поставщик валерьянки для Кота
- Сообщения: 1995
- Зарегистрирован: Ср май 11, 2011 21:37:45
- Откуда: Цветочный город
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
все зависит от ваших условий. в принципе, можно использовать режим захвата таймера №1.Edaker писал(а):Здравствуйте... Я только учусь так что мой глупый вопрос....
Мне надо отсчитать время между 2 импульсами.. И вот вопрос Обрабатывать прерывании EXT_INT0 и TIM0_OVF или есть что то другое для этих целей?
Забыл МК Мега8
битва с дураками проиграна, победители торжествуют. слава победителям!
Re: CodeVision AVR в вопросах и ответах
Мастер Ломастер писал(а):все зависит от ваших условий. в принципе, можно использовать режим захвата таймера №1.Edaker писал(а):Здравствуйте... Я только учусь так что мой глупый вопрос....
Мне надо отсчитать время между 2 импульсами.. И вот вопрос Обрабатывать прерывании EXT_INT0 и TIM0_OVF или есть что то другое для этих целей?
Забыл МК Мега8
А можно по подробней. А то моим методом стабильно получается до 200 Гц а мне надо примерно до 500 вот мучаюсь уже 2 день...
-
Мастер Ломастер
- Поставщик валерьянки для Кота
- Сообщения: 1995
- Зарегистрирован: Ср май 11, 2011 21:37:45
- Откуда: Цветочный город
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
все подробности изложены в Timer1 Capture Mode - см. даташит.
битва с дураками проиграна, победители торжествуют. слава победителям!
Re: CodeVision AVR в вопросах и ответах
Доброго времени суток! Подскажите плиз как в 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. Спасибо
делал так:
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. Спасибо
-
Мастер Ломастер
- Поставщик валерьянки для Кота
- Сообщения: 1995
- Зарегистрирован: Ср май 11, 2011 21:37:45
- Откуда: Цветочный город
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
может, все-таки не 0,01 а 0.01 - запятая в Си - это тоже ОПЕРАТОР, а ТОЧКА - это разделитель целой и дробной части (в константе).
битва с дураками проиграна, победители торжествуют. слава победителям!
Re: CodeVision AVR в вопросах и ответах
так и есть, (я ступил
) , поставил точку, после етого на строку уже не матюкается.
Теперь стала другая пробл, как вывести с помощью sprintf на ЛСД ето число, что бы было с точкой (например число после умножения = 253,23)???
Теперь стала другая пробл, как вывести с помощью sprintf на ЛСД ето число, что бы было с точкой (например число после умножения = 253,23)???
-
Мастер Ломастер
- Поставщик валерьянки для Кота
- Сообщения: 1995
- Зарегистрирован: Ср май 11, 2011 21:37:45
- Откуда: Цветочный город
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
наверное, формат %6.2f вам поможет, ну и в параметрах компилятора поддержку printf-float не забудьте включить
битва с дураками проиграна, победители торжествуют. слава победителям!
Re: CodeVision AVR в вопросах и ответах
Вроде помогло, большое спасибо.
Еще бы разобраться что ето значит...%6.2f .. 
-
Мастер Ломастер
- Поставщик валерьянки для Кота
- Сообщения: 1995
- Зарегистрирован: Ср май 11, 2011 21:37:45
- Откуда: Цветочный город
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
букварь по Си любого автора, - и читать, читать, читать...wellcom писал(а):Еще бы разобраться что ето значит...%6.2f ..
битва с дураками проиграна, победители торжествуют. слава победителям!
- IfoR
- Поставщик валерьянки для Кота
- Сообщения: 2029
- Зарегистрирован: Сб ноя 15, 2008 10:09:56
- Откуда: г. Тула
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Дык не обязательно именно C. printf является стандартным не только для C. 
wellcom, у вас объявляется поле шириной 6 символов с 2-мя числами после запятой. Тип поля: float.
Подробнее: http://ru.wikipedia.org/wiki/Printf
wellcom, у вас объявляется поле шириной 6 символов с 2-мя числами после запятой. Тип поля: float.
Подробнее: http://ru.wikipedia.org/wiki/Printf
Re: CodeVision AVR в вопросах и ответах
Спасибо, уже нашел, буду разбираться (Лебедев, стр 265 ) 
-
demiurg301
- Опытный кот
- Сообщения: 812
- Зарегистрирован: Ср мар 18, 2009 21:14:33
Re: CodeVision AVR в вопросах и ответах
Решил исользовать библиотеку PCF8583 из CVAVR 1.25.5 . Но там нет функции для таймера. Подскажите в старших версиях CVAVR они добавлены ? Или может кто сам дописывал эти функции ? - поделитесь пожалуйста.
