Погонять код не судьба ? И сразу найдётся у вас "конкретный ответ".
CodeVision AVR в вопросах и ответах
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Я вот, например, тоже хз для чего производители дают возможность отладки ?
Видимо, только для неленивых пощёлкать лишний раз мышкой...
Погонять код не судьба ? И сразу найдётся у вас "конкретный ответ".
Погонять код не судьба ? И сразу найдётся у вас "конкретный ответ".
- Реклама
- COKPOWEHEU
- Говорящий с текстолитом
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Re: CodeVision AVR в вопросах и ответах
Что это за кошмар? Неужели нельзя было просто завести массив и написать константы по-человечески? Примерно так я делал на avr-gcc.flash char sim(char number){ char temp;
switch (number) {
case 0: temp = 126; break;
<--->
case '-': temp = 1; break;
}
return temp;
}
Код: Выделить всё
#define SEG_A (1<<0)
#define SEG_B (1<<1)
#define SEG_C (1<<2)
<--->
#define SEG_G (1<<6)
#define SEG_DP (1<<7)
PROGMEM const char nums[]={
(SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F),
(SEG_B | SEG_C),
<--->
(SEG_A | SEG_B | SEG_C | SEG_D | SEG_F | SEG_G),
(SEG_G) //знак "минус"
};
#define NUM_MINUS 10
char* int2str(char *buffer, int value){ //buffer - внешняя область памяти для хранения результирующей строки ; value - отображаемое число
char *buf = buffer+7;
unsigned int temp;
char sign;
if(value<0){sign=1; temp=-value;}else temp=value; //сохраняем знак
*--buf=0; //завершающий ноль
do{
*--buf = temp % 10;
temp /= 10;
}while(temp != 0);
if(sign)*--buf=NUM_MINUS; //используем сохраненный знак
return buf;
}
<--->
char buffer[8];
lcd_puts(int2str(buffer, -1)); //lcd_puts(char *s) принимает на вход строку в стиле Си.
Re: CodeVision AVR в вопросах и ответах
Учёл ваши замечания
и вот работает так-
Код: Выделить всё
//10 11 12 13 14 15 16 17 18
flash char sim[]={126,48,109,121,51,91,95,112,127,123,71,62,103,55,119,78,79,99,1};
// 0 1 2 3 4 5 6 7 8 9 F U P H A C E * -
..........
if(temper<0){write(sim[(temper-(temper*2))/10%10], 6);}
- COKPOWEHEU
- Говорящий с текстолитом
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Re: CodeVision AVR в вопросах и ответах
Спойлер
Надеюсь, модераторы простят излишнюю содержательность этого поста- pashaumnov
- Прорезались зубы
- Сообщения: 236
- Зарегистрирован: Чт июн 25, 2009 16:00:25
- Откуда: нижний новгород
Re: CodeVision AVR в вопросах и ответах
добрый вечер , разбираюсь с аналоговым корпаратором в тиньке 13. нашел в интернете кусок кода который работает, но я не понимаю как он работает,хотелось бы разобраться
{
DDRB=0xFF; //порт на выход
ACSR|=(1<<ADC); //включение компаратора( тут не очень понятно. для того что бы включить компаратор надо выставить 0 в ADC а тут ADC выставляется в 1
while(1)
PORTB.3=(ACSR&(1<<ACO)); //выводим значение результата сравнения (вотэта строчка не ясна, как ее можно расписать с помощью функций? результат компаратора отражается как раз в этом бите ACO пробовал по разному и через if(асd==1) {PORTB.3=1} не работает((((( не пойму что выводить еще (
}
{
DDRB=0xFF; //порт на выход
ACSR|=(1<<ADC); //включение компаратора( тут не очень понятно. для того что бы включить компаратор надо выставить 0 в ADC а тут ADC выставляется в 1
while(1)
PORTB.3=(ACSR&(1<<ACO)); //выводим значение результата сравнения (вотэта строчка не ясна, как ее можно расписать с помощью функций? результат компаратора отражается как раз в этом бите ACO пробовал по разному и через if(асd==1) {PORTB.3=1} не работает((((( не пойму что выводить еще (
}
- Реклама
- Ян
- Поставщик валерьянки для Кота
- Сообщения: 1947
- Зарегистрирован: Вт ноя 01, 2005 17:32:22
- Откуда: Москва
Re: CodeVision AVR в вопросах и ответах
Вы уж меня простите за тупой вопрос, просто только начал немного разбираться, больше негде спросить...
Простой пример. Шаговый двигатель включается кнопкой.
В чем засада?
Моделирую в Протеусе.

Или я Протеусом как-то не так пользуюсь...
Простой пример. Шаговый двигатель включается кнопкой.
Но он не включается. Если выкинуть if(PINB.1==0), двигатель крутится.#include <mega8.h>
#include <delay.h>
void main(void)
{
PORTB=0x02;
DDRB=0x00;
PORTD=0x00;
DDRD=0x0F;
while (1)
{
if(PINB.1==0)
{
PORTD=0b00000011;
delay_ms(10);
PORTD=0b00000110;
delay_ms(10);
PORTD=0b00001100;
delay_ms(10);
PORTD=0b00001001;
delay_ms(10);
}
};
}
В чем засада?
Моделирую в Протеусе.
Или я Протеусом как-то не так пользуюсь...
Re: CodeVision AVR в вопросах и ответах
Нужно поменять местами биты в байте, например 0 с 3 и 4 с 6
Я кончено понимаю как это сделать но может есть феерично простой способ?
Я кончено понимаю как это сделать но может есть феерично простой способ?
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Просто вряд ли получится. А общий принцип может быть что-то вроде:
Код: Выделить всё
a = (a & 0b11110110) | ((a & 0b00001000) >> 3) | ((a & 0b00000001) << 3);
a = (a & 0b10101111) | ((a & 0b10000000) >> 2) | ((a & 0b00010000) << 2);
- Ян
- Поставщик валерьянки для Кота
- Сообщения: 1947
- Зарегистрирован: Вт ноя 01, 2005 17:32:22
- Откуда: Москва
Re: CodeVision AVR в вопросах и ответах
Давно не чувствовал себя таким тупым... Ничего не понял... Но все равно, спасибо за ответы, пошел изучать дальше.
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Ян: по Вашему вопросу - не совсем понятно, зачем там батарейка в протеусе, да ещё и так странно подключенная?
- Ян
- Поставщик валерьянки для Кота
- Сообщения: 1947
- Зарегистрирован: Вт ноя 01, 2005 17:32:22
- Откуда: Москва
Re: CodeVision AVR в вопросах и ответах
Это мое понимание как пользоваться Протеусом. Я им раньше не пользовался. Питание ведь нужно подавать? Или это необязательно?
Попробовал. Надо же, и без питания работает. Буду знать.
Разобрался, все работает. Это я Протеусом неправильно пользовался. Буду ковыряться дальше!
Попробовал. Надо же, и без питания работает. Буду знать.
Разобрался, все работает. Это я Протеусом неправильно пользовался. Буду ковыряться дальше!
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Вообще, на выводы 7,8 , судя по названию, вешается кварц 
Выводы питания в протеусе скрыты.
Выводы питания в протеусе скрыты.
- Ян
- Поставщик валерьянки для Кота
- Сообщения: 1947
- Зарегистрирован: Вт ноя 01, 2005 17:32:22
- Откуда: Москва
Re: CodeVision AVR в вопросах и ответах
Уже все понял... Дурак я старый...
Re: CodeVision AVR в вопросах и ответах
По умолчанию это ноги порта, квар туда фьюзами конфигурится.Аlex писал(а):Вообще, на выводы 7,8 , судя по названию, вешается кварц
Выводы питания в протеусе скрыты.
-
Pnjom-Penb
- Мучитель микросхем
- Сообщения: 469
- Зарегистрирован: Вс авг 30, 2015 03:52:59
Re: CodeVision AVR в вопросах и ответах
Не огорчайтесь - я еще старше.Ян писал(а):Уже все понял... Дурак я старый...
- Ян
- Поставщик валерьянки для Кота
- Сообщения: 1947
- Зарегистрирован: Вт ноя 01, 2005 17:32:22
- Откуда: Москва
Re: CodeVision AVR в вопросах и ответах
Ну не знаю... Я еще Хрущева помню! 
-
Pnjom-Penb
- Мучитель микросхем
- Сообщения: 469
- Зарегистрирован: Вс авг 30, 2015 03:52:59
Re: CodeVision AVR в вопросах и ответах
А я его уже даже забыть успел!

- Specelectrokaz
- Первый раз сказал Мяу!
- Сообщения: 29
- Зарегистрирован: Вс янв 03, 2016 07:09:29
- Откуда: Казахстан
Re: CodeVision AVR в вопросах и ответах
Всем привет, парни раз уж заговорили о протеусе вопрос такой: может кто разводит на нём печатные платы? как он подходит для этих целей? Я пока делаю в спринт лайауте, но хочу что бы плата отображалась в 3D, да и опыт надо повышать что бы проекты посерьёзней были, пробовал в диптрейсе, что то нехватило ума его хорошо освоить(а может и терпения с желанием), вообщем стоит мне с ним связываться или же дальше осваивать диптрейс(но там почему то не все комоненты есть в 3D).Жду ваших мнений!
если человеку позволить говорить что он думает, то он разучится думать...
- Ян
- Поставщик валерьянки для Кота
- Сообщения: 1947
- Зарегистрирован: Вт ноя 01, 2005 17:32:22
- Откуда: Москва
Re: CodeVision AVR в вопросах и ответах
Давно пользуюсь Диптрейсом. Попробуйте, может понравится.
-
AlhonGelios
- Первый раз сказал Мяу!
- Сообщения: 27
- Зарегистрирован: Пн авг 17, 2015 19:31:34
Re: CodeVision AVR в вопросах и ответах
Подскажите пожалуйста как в Codevision 3.12 вывести русские символы на lcd hd44780? Деректива #pragma rl+ не работает может есть какая замена ей?


