CodeVision AVR в вопросах и ответах
- IfoR
- Поставщик валерьянки для Кота
- Сообщения: 2029
- Зарегистрирован: Сб ноя 15, 2008 10:09:56
- Откуда: г. Тула
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Ах, ну да... Ну да ладно.
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
IfoR писал(а):А тип функции main всё таки на int замени.
не нужно это же вижн он сам так пишет.
FreshMan писал(а):в английском пока не силен![]()
![]()
да в русском тоже не особо
Переключаться проверочный вопрос -что делать?
Последний раз редактировалось vitalik_1984 Ср фев 15, 2012 20:21:20, всего редактировалось 1 раз.
В поисках истины человек развивается.
- IfoR
- Поставщик валерьянки для Кота
- Сообщения: 2029
- Зарегистрирован: Сб ноя 15, 2008 10:09:56
- Откуда: г. Тула
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Ну я по привычки просто. 
- totty
- Первый раз сказал Мяу!
- Сообщения: 39
- Зарегистрирован: Ср авг 03, 2011 22:26:02
- Откуда: Севастополь
Re: CodeVision AVR в вопросах и ответах
vitalik_1984, дописал)) терь ни варнинг ничего, но все-равно не хочет
пробовал и через автоматический генератор программ, результат тот же
пробовал и через автоматический генератор программ, результат тот же
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Это скорее всего не ошибка, а варнинг. И ругается, вероятнее всего, не на int, а на отсутствие return. Попробуйте в конце ф-ии воткнуть return 0; или указать для ф-ии тип void.totty писал(а):теперь дает ошибку что функция main должна возвращать void =)
А я думал, что в Си тип int по умолчанию.vitalik_1984 писал(а):это же вижн он сам так пишет.
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Аlex писал(а):конце ф-ии воткнуть return 0; или указать для ф-ии тип void.
Не придумывайте ерунды.Это же вижн ему правила си не вижн
totty писал(а):пробовал и через автоматический генератор программ, результат тот же
Плохо пробовали
Код: Выделить всё
#include <tiny2313.h>
interrupt [TIM1_OVF] void Timer1_ovf(void)
{
TCNT1H=0xff;
TCNT1L=0xf0;
PORTB.1=~PORTB.1;
PORTB.2=~PORTB.2;
}
void main(void)
// основная программа
{
/* Настройка портов */
DDRB=0xFF; // весь порт на вывод
DDRD=0xFF; // весь порт на вывод
PORTB.1=1;
PORTB.2=0;
/* Настройки таймера 0 */
TIMSK|=(1<<TOIE1);
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 31.250 kHz
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: On
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x04;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0xff;
ICR1L=0xf0;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
#asm("sei")
while(1)
{
}
} Сгенерил в проте работает.
Кстати в проте очень долго нужно ждать прерывания на первом таймере аж 16 бит нужно пролистать.
В поисках истины человек развивается.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Нормально...Это же вижн ему правила си не вижн
Ладно, я походу не в ту ветку залез. Мне больше PIC'и по душе....

- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Определенные правила то есть, но потом код из вижна не получится на другой компилятор зарядить.
В поисках истины человек развивается.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Стало на столько интересно, что поставил себе CV. Версия 2.03.4
Тест :
Warning: explicit return type is missing, 'void' assumed
Error: the 'main' function must return 'void' type
No errors
No warnings
А Вы говорите "не придумывайте ерунды"
С void'ом то работает 
С int'ом вообще ругается
На return'ы, так-же, ругается матом
Тест :
Код: Выделить всё
main(void)
{Код: Выделить всё
int main(void)
{Код: Выделить всё
void main(void)
{No warnings
А Вы говорите "не придумывайте ерунды"
С int'ом вообще ругается

На return'ы, так-же, ругается матом
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
между прочим я как раз на ваши предложения добавить ретерны или инты сказал что не придумывать.Нужно пользоваться мастером.Он же сам с собой не будет спорить.
В поисках истины человек развивается.
- totty
- Первый раз сказал Мяу!
- Сообщения: 39
- Зарегистрирован: Ср авг 03, 2011 22:26:02
- Откуда: Севастополь
Re: CodeVision AVR в вопросах и ответах
vitalik_1984, спасибо
А в Протеусе не в реальном времени происходят прерываняи, я имею в виду он выводами мигает, по идее частота мигания должна быть не заметна глазу а тут происходит очень медленно, нет привязки к реальному времени?
А в Протеусе не в реальном времени происходят прерываняи, я имею в виду он выводами мигает, по идее частота мигания должна быть не заметна глазу а тут происходит очень медленно, нет привязки к реальному времени?
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
смотри внизу предупреждения протеуса наверняка предупреждает что не успевает в реальном времени вычислять.
В поисках истины человек развивается.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Я про инты ничего не говорил. Я только сказал добавить ретурн, если ф-ия имеет тип int или сделать её voidмежду прочим я как раз на ваши предложения добавить ретерны или инты сказал
Да ладно, что спорить... "Фигня эта Ваша заливная рыба"
Отхожу от темы, всем приятного программирования !

Re: CodeVision AVR в вопросах и ответах
Начинаю разбираться с мк и столкнулся с проблемой,что в CodeVision при компиляции кода выскакивает ошибка что превышен размер Data Stack на несколько байт.Код:
Этот код я обрезал как уже смог,а если мне нужна нормальная программа,то что делать с объемом data stack?
Код: Выделить всё
#include <90s2313.h>
#include <1wire.h>
#include <lcd.h>
#include <stdio.h>
#include <ds1820.h>
#asm
.equ __w1_port=0x18
.equ __w1_bit=0
#endasm
#asm
.equ __lcd_port=0x12;
#endasm
int temper;
unsigned char lcdBuff[5];
void main(void)
{
lcd_init(10);
if(w1_init())
{
while (1)
{
temper=ds1820_temperature_10(0);
sprintf(lcdBuff,"t",temper);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(lcdBuff);
}
}
}Этот код я обрезал как уже смог,а если мне нужна нормальная программа,то что делать с объемом data stack?
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
проверь в опциях проекта чтобы правильный профессор был выбран.на панели управления кнопочка с ключиком гаечным.левее шестеренки у меня расположена.
В поисках истины человек развивается.
- IfoR
- Поставщик валерьянки для Кота
- Сообщения: 2029
- Зарегистрирован: Сб ноя 15, 2008 10:09:56
- Откуда: г. Тула
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Здесь
вы кладёте в стек temper, а забирать не забираете. Может быть дело в этом. Попробуйте так:
Код: Выделить всё
sprintf(lcdBuff,"t",temper); вы кладёте в стек temper, а забирать не забираете. Может быть дело в этом. Попробуйте так:
Код: Выделить всё
sprintf(lcdBuff,"%d",temper); Re: CodeVision AVR в вопросах и ответах
vitalik_1984 писал(а):проверь в опциях проекта чтобы правильный профессор был выбран.на панели управления кнопочка с ключиком гаечным.левее шестеренки у меня расположена.
что вы подразумеваете под правильным профессором?
- IfoR
- Поставщик валерьянки для Кота
- Сообщения: 2029
- Зарегистрирован: Сб ноя 15, 2008 10:09:56
- Откуда: г. Тула
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Вероятно имелось ввиду: процессор. Или контроллер.
Re: CodeVision AVR в вопросах и ответах
Там стоит как нужно - at90s2313.Я даже пробывал увеличить до 120 размер стека,но все равно 3 байта никак не влезают и выдается ошибка((
Re: CodeVision AVR в вопросах и ответах
Коты, подскажите плз, может ламерский вопрос, но все же. Есть стандартный обработчик RXD прерывания в codevision с буфером в RX_BUFFER_SIZE =24, например.
1. Как можно достать из буфера какой-то конкретный символ? 14-й например.
2. Как можно отправить пачку символов в буфер, чтоб посмотреть как работает сам буфер, иметь возможность его заполнить, попробовать достать из него что-то?
Т.е. как можно одним махом заполнить весь буфер? В стандартном терминале, как только нажимаешь клавишу в окне ввода - сразу срабатывет прерывание по RXD в контроллере и буфер не заполняется полностью. Или я чего-то не так понимаю?
1. Как можно достать из буфера какой-то конкретный символ? 14-й например.
2. Как можно отправить пачку символов в буфер, чтоб посмотреть как работает сам буфер, иметь возможность его заполнить, попробовать достать из него что-то?
Т.е. как можно одним махом заполнить весь буфер? В стандартном терминале, как только нажимаешь клавишу в окне ввода - сразу срабатывет прерывание по RXD в контроллере и буфер не заполняется полностью. Или я чего-то не так понимаю?
