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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
odesasha
Прорезались зубы
Сообщения: 237
Зарегистрирован: Пт фев 12, 2010 14:02:22
Откуда: Одесса

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

Сообщение odesasha »

У меня мнение о Протеусе сложилось несколько иное .Судя по проектам с DS18B20 можно сказать , что
Протеус почти не годен для эмуляции - многие проекты , написанные с классик текстами для DS
не работают на Протеусе , хотя прекрасно живут во всех экземплярах железа .
Так-что его используют лишь для модульного простейшего моделирования в качестве наглядного пособия
и то не всегда ( обычно при невозможности дешево собрать макет ).
Аватара пользователя
odesasha
Прорезались зубы
Сообщения: 237
Зарегистрирован: Пт фев 12, 2010 14:02:22
Откуда: Одесса

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

Сообщение odesasha »

Вот пишу таймер с экодером , вместо механики для духовки , на ТИНИ 2313 и спецом добавил одну байт Static в качестве счетчика в ф-цию таймера1. Код вырос
на 1%. Сделал глобальной- опять уменьшился .
Уважаемый ARV ?, где экономия хекса на Static-ах - непонятно .
Покажите хоть простой пример , может я чего не понял .
Аватара пользователя
demonchik
Встал на лапы
Сообщения: 94
Зарегистрирован: Вт апр 07, 2009 13:39:13
Откуда: одесса
Контактная информация:

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

Сообщение demonchik »

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

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

Сообщение ARV »

odesasha писал(а):Вот пишу таймер с экодером , вместо механики для духовки , на ТИНИ 2313 и спецом добавил одну байт Static в качестве счетчика в ф-цию таймера1. Код вырос
на 1%. Сделал глобальной- опять уменьшился .
Уважаемый ARV ?, где экономия хекса на Static-ах - непонятно .
Покажите хоть простой пример , может я чего не понял .

во-первых, эффект от static проявляется в компиляторах, которые следуют стандарту Си. не уверен, что CVAVR из таких компиляторов :)
во-вторых, и это главное, static экономит код только если он добавляется К ФУНКЦИЯМ, а не переменным! по логике вещей для глобальных переменных что static, что нет - все едино, на код не должно влиять.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Сериг
Это не хвост, это антенна
Сообщения: 1451
Зарегистрирован: Пт фев 19, 2010 19:39:28
Откуда: Москва

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

Сообщение Сериг »

ребят помогите пожалуйста надо к тини 2313 подсоеденить фото элемент который от любого пульта будет включать светодиод или выключать...!cvavr
Аватара пользователя
andrey_artemov
Встал на лапы
Сообщения: 136
Зарегистрирован: Сб авг 15, 2009 21:26:50
Откуда: Пенза
Контактная информация:

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

Сообщение andrey_artemov »

На Тини 2313 не АЦП, поэтому нужно ставить не фотоэлемент аналоговый (в смысле не фоторезистор и т.д.), нужно ставить фотоприёмник, на его выходе цифровой выход, на нашем форуме очень много тем, с реализацией на микроконтроллерах,
вот например http://radiokot.ru/forum/viewtopic.php?f=20&t=9575&start=20, там как раз на тиньки, и протокол RC-5
380v
Родился
Сообщения: 13
Зарегистрирован: Вс ноя 29, 2009 15:32:13

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

Сообщение 380v »

Помогите пожалуйста. Сейчас пытаюсь разобраться с CVAVR, и вот такая беда: пишу две программы (просто в качастве обучения) для работы с LCD (просто чтобы индикатор что-нибудь высветил, например "ААААА"). Одна программа для меги16 , другая для АТ90S8515. Проверяю в работу Протеусе. Так вот AT90S8515 работает, а Mega16 нет. Вчем может быть дело. До этого я программировал в BASCOMе, на нем все работает,все нормально, а с CVAVR у меня не получается. Вот код:

#include <mega16.h>

// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>

// Declare your global variables here

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

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T 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
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=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;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

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

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

// LCD module initialization
lcd_init(16);

while (1)
{
lcd_gotoxy(0,3);
lcd_putsf("fff");
};
}
Аватара пользователя
VannO)))
Открыл глаза
Сообщения: 49
Зарегистрирован: Вс дек 05, 2010 00:53:17
Откуда: Киев

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

Сообщение VannO))) »

Всем доброго времени суток. Есть ли ошибка в логике работы кода, обрабатывающего нажатие кнопочек? Кнопка нажата - на входе мк 0, не нажата - 1.

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

while (1){ 
    //=================== Button1 processing ===================
        if(key1_flag){
            freq_val ++;
            key1_flag = 0;
            while(!(PINB & 0b00000010)) {}
        }
        else{
            if(!(PINB & 0b00000010)){
                delay_ms(50);
                if(!(PINB & 0b00000010)){
                    key1_flag = 1;
                }
            }
        }
    //=================== Button2 processing ===================
        if(key2_flag){
            freq_val --;
            key2_flag = 0;
            while(!(PINB & 0b00000100)) {}
        }
        else{
            if(!(PINB & 0b00000100)){
                delay_ms(50);
                if(!(PINB & 0b00000100)){
                    key2_flag = 1;
                }
            }
        }
    }

флажки кнопок - unsigned char, частота_значение - изменяемый в результате нажатия кнопки параметр.
[color=#FF80FF]Не втыкать.[/color]
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

есть как минимум одна ошибка (с беглого просмотра, при детальном, возможно, найдутся и еще): при одновременном нажатии на обе кнопки они обработаются последовательно, что явно не правильно, а для некоторых случаев - категорически недопустимо.

рекомендую делать так, как давным-давно придумано: сделать функцию, которая анализирует сразу ВСЕ кнопки и возвращает код, соответствующий КОМБИНАЦИИ нажатых кнопок, а затем обращаться к этой функции и анализировать КОМБИНАЦИИ кнопок. кстати, код при этом получается более лаконичный, красивый, понятный.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Tom91
Встал на лапы
Сообщения: 108
Зарегистрирован: Пт окт 08, 2010 15:43:55

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

Сообщение Tom91 »

Написал пример для доступа к DS1307 на чтение, прошу проверить правильность и помощь в написание процедуры предустановки даты/времени путём кнопок подключённых к свободным линиям PORTD и в дальнейшем хочу добавить дисплей с целью получения полнофункциональных часов.

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

#include <tiny2313.h>

#asm
.equ __i2c_port=0x12     // подключил к порту PORTD
.equ __sda_bit=0
.equ __scl_bit=1
#endasm

#include <i2c.h>
#include <ds1307.h>

void main (void)
{
unsigned char  lcddate, lcdmonth, lcdyear;   // объявление переменных даты
unsigned char  lcdhour, lcdminute, lcdsecond;  // объявление переменных время
i2c_init();
rtc_init (0,1,0);  // инициализация часов, непонял о чём говорят значения в скобках?


rtc_get_date (&lcddate, &lcdmonth, &lcdyear); // читаем дату
rtc_get_time (&lcdhour, &lcdminute, &lcdsecond); // читаем время
}


P.S. сильно не пинайте, имхо незнаю ни одного языка программирования и только вчера начал осваивать CvAVR.
Аватара пользователя
Сериг
Это не хвост, это антенна
Сообщения: 1451
Зарегистрирован: Пт фев 19, 2010 19:39:28
Откуда: Москва

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

Сообщение Сериг »

доброго времени суток!помогите пожалуйста хочу разобратся с шимом ,хочу на меге 8 плавно зажигать светодиод,кто может помочь описать это действие?Спасибо мяу!
Schwarz
Родился
Сообщения: 7
Зарегистрирован: Сб дек 11, 2010 23:04:22

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

Сообщение Schwarz »

Здравствуйте!Вопрос по CodeVisionAVR.Можно ли с помощью CodeVisionAVR можно считать код с МК, если да то как?... Как прошить мк с помощью СVA? Какие настройки ставить? Дай ответы, посоветуй книгу... Мк atmega8l. В деле полный новичок.
Программатор спаян от сюда http://myrobot.ru/wiki/index.php?n=Projects.MyPROGGER
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

Schwarz писал(а):Здравствуйте!Вопрос по CodeVisionAVR.Можно ли с помощью CodeVisionAVR можно считать код с МК, если да то как?... Как прошить мк с помощью СVA? Какие настройки ставить? Дай ответы, посоветуй книгу... Мк atmega8l. В деле полный новичок.
Программатор спаян от сюда http://myrobot.ru/wiki/index.php?n=Projects.MyPROGGER

Сначала Settings->Programmer выбираем программатор и куда он подключён, потом жмём Shift+F4. Чтоб прочитать меню Read (если МК не залочен), чтоб шить меню Program. Fuse bits незабываем выставлять.
«И всё-таки она вертится!»
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

Schwarz писал(а):посоветуй книгу...

Хорошая книга. Также почитай этот сайт, а именно седьмой урок.
«И всё-таки она вертится!»
Schwarz
Родился
Сообщения: 7
Зарегистрирован: Сб дек 11, 2010 23:04:22

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

Сообщение Schwarz »

Apparatchik писал(а):
Schwarz писал(а):посоветуй книгу...

Хорошая книга. Также почитай этот сайт, а именно седьмой урок.

Спасибо.

Прошиваю Мк ATMEGA8L. Не могу понять какие Fuse bits выставить. Ткните пальцем в даташите плз.
Моего программатора нету в Settings->Programmer что делать?(мой самопальный программатор называется SI Prog API или siprog)
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

Schwarz писал(а):Прошиваю Мк ATMEGA8L. Не могу понять какие Fuse bits выставить. Ткните пальцем в даташите плз.
Моего программатора нету в Settings->Programmer что делать?(мой самопальный программатор называется SI Prog API или siprog)

Fuse bits обычно указывает автор проэкта, если сами проэкт делаете, то начинающие обычно меняют только те биты, которые отвечают за тактирование МК, в даташите раздел "System Clock and Clock Options".
Программатор лучше сделать один из этих, тогда точно будет работать с CodeVisionAVR. Ваш программатор точно работает с PonyProg2000 тут описано, так что компилировать можно в CodeVisionAVR а программить в PonyProg2000.
«И всё-таки она вертится!»
Schwarz
Родился
Сообщения: 7
Зарегистрирован: Сб дек 11, 2010 23:04:22

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

Сообщение Schwarz »

Schwarz писал(а):Fuse bits обычно указывает автор проэкта, если сами проэкт делаете, то начинающие обычно меняют только те биты, которые отвечают за тактирование МК, в даташите раздел "System Clock and Clock Options".

На Мк уже есть код (исп язык С), я хочу его считать и поменять 2-3 значения. :write: Какие подводные камни могут быть, не сожгу ли я Мк?
Fuse bits обычно указывает автор проэкта-они где то описываются или просто ставятся галочки.
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

Schwarz писал(а):На Мк уже есть код (исп язык С), я хочу его считать и поменять 2-3 значения. :write: Какие подводные камни могут быть, не сожгу ли я Мк?
Fuse bits обычно указывает автор проэкта-они где то описываются или просто ставятся галочки.

МК то ничё небудет, а вот поменять чтонибуть без исходника врятли получится. Нужен исходник программы иначе нужно дизассемблер или что-то в этом роде я в ассемблере мало понимаю.
«И всё-таки она вертится!»
Schwarz
Родился
Сообщения: 7
Зарегистрирован: Сб дек 11, 2010 23:04:22

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

Сообщение Schwarz »

Apparatchik писал(а):
Schwarz писал(а):На Мк уже есть код (исп язык С), я хочу его считать и поменять 2-3 значения. :write: Какие подводные камни могут быть, не сожгу ли я Мк?
Fuse bits обычно указывает автор проэкта-они где то описываются или просто ставятся галочки.

МК то ничё небудет, а вот поменять чтонибуть без исходника врятли получится. Нужен исходник программы иначе нужно дизассемблер или что-то в этом роде я в ассемблере мало понимаю.

т.е если я вас правильно понял у меня не удатся вытащить код из мк с помощью PonyProg2000, открыть вытащенный фаил в CodeVisionAVR, поменятьь пару цифорок, с компелиривать и прошить заново с помощью PonyProg2000?
Аватара пользователя
AlexFisher
Мучитель микросхем
Сообщения: 493
Зарегистрирован: Вт апр 21, 2009 13:31:27
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение AlexFisher »

Вытащить то получится, но программы на С Вы не увидите. Перед Вами будет результат работы дизассемблера - чистый ассемблерный код без интуитивно понятных меток и т.д. Копаться в нем архисложно, но если Вы точно знаете где и что Вам нужно поменять, то можно. Но лучше найти исходник.
[i]Да здравствует всё то, благодаря чему мы не смотря ни на что![/i]
Ответить

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