сделал как вы сказали все ОК!!! Вот это мозг!SubDia писал(а):Зато нулевая нога порта дергается почему-то (пока что переключите светодиод на PORTD.0 - увидите мигание). Жаль, у меня сейчас времени нет разбираться, только ночью засяду. =)Ратмир писал(а):Светодиод вообще не мигает, а на оциле такая воть хрень при 0,05V/дел без нагрузки, не работает прога.
CodeVision AVR в вопросах и ответах
Re: CodeVision AVR в вопросах и ответах
- Вложения
-
- Все ОК.JPG
- (89.3 КБ) 446 скачиваний
- Реклама
- SubDia
- Держит паяльник хвостом
- Сообщения: 995
- Зарегистрирован: Сб апр 02, 2011 17:59:22
- Откуда: Город-герой Севастополь
Re: CodeVision AVR в вопросах и ответах
А теперь поменяйте в двух строках управления портом "PORTD.1" на "1", и у Вас замигает и первый вывод - PORTD.1 (или на "2", и будет дергаться второй). В общем, использование имени ноги порта не прокатывает.Ратмир писал(а):сделал как вы сказали все ОК!!! Вот это мозг!SubDia писал(а): Зато нулевая нога порта дергается почему-то (пока что переключите светодиод на PORTD.0 - увидите мигание). Жаль, у меня сейчас времени нет разбираться, только ночью засяду. =)
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )

MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )

Re: CodeVision AVR в вопросах и ответах
Изменил порт ни хрена только на PD0 мигает
- Вложения
-
- PD.1.JPG
- (50.51 КБ) 348 скачиваний
- Сериг
- Это не хвост, это антенна
- Сообщения: 1451
- Зарегистрирован: Пт фев 19, 2010 19:39:28
- Откуда: Москва
Re: CodeVision AVR в вопросах и ответах
Сериг писал(а):а вы включили делэй функцию в начале?
Re: CodeVision AVR в вопросах и ответах
delay.h вроде да, а #include не достаточно для включения?
- Реклама
- Сериг
- Это не хвост, это антенна
- Сообщения: 1451
- Зарегистрирован: Пт фев 19, 2010 19:39:28
- Откуда: Москва
Re: CodeVision AVR в вопросах и ответах
Сериг писал(а):Сериг писал(а):Ребят,просьба помогите часы сделать мне надо на семисегментниках с общим анодом! ,не у кого не будет прошики в CVAVR ??? оч нужно.
Re: CodeVision AVR в вопросах и ответах
меняю delay на 25 милисек никакого эффекта с PD0 стабильный сигнал, с других Х...й
- SubDia
- Держит паяльник хвостом
- Сообщения: 995
- Зарегистрирован: Сб апр 02, 2011 17:59:22
- Откуда: Город-герой Севастополь
Re: CodeVision AVR в вопросах и ответах
Дык я же говорил писать не "_BV(PORTD.1)", а "_BV(1)". Вы не то написали.Ратмир писал(а):Изменил порт ни хрена только на PD0 мигает
Получается так: командой "PORTD |= _BV(1)" мы накладываем маску 0b00000010 на порт (а там у нас 0). В итоге на PORTD.1 появляется высокий уровень. Дальше мы выполняем команду побитного И значения PORTD (в данный момент 0b00000010) с инвертированным значением маски (а это - число 0b11111101). В результате этой операции у нас получится так, что там, где были в маске нули, в значении PORTD биты обнулятся независимо от того, какие числа там стояли (а все прочее останется неизменным). В итоге второй бит PORTD обнулится в соответствии с накладываемой маской.
Этот вариант работает.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )

MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )

Re: CodeVision AVR в вопросах и ответах
Ниже на форуме есть тема: часы, таймер,будильник на жк и сегментных индикаторахСериг писал(а):Сериг писал(а):
Re: CodeVision AVR в вопросах и ответах
Все порядок, все работает. Теперь поиграюсь с портамиSubDia писал(а):Дык я же говорил писать не "_BV(PORTD.1)", а "_BV(1)". Вы не то написали.Ратмир писал(а):Изменил порт ни хрена только на PD0 мигает
Получается так: командой "PORTD |= _BV(1)" мы накладываем маску 0b00000010 на порт (а там у нас 0). В итоге на PORTD.1 появляется высокий уровень. Дальше мы выполняем команду побитного И значения PORTD (в данный момент 0b00000010) с инвертированным значением маски (а это - число 0b11111101). В результате этой операции у нас получится так, что там, где были в маске нули, в значении PORTD биты обнулятся независимо от того, какие числа там стояли (а все прочее останется неизменным). В итоге второй бит PORTD обнулится в соответствии с накладываемой маской.
Этот вариант работает.
Re: CodeVision AVR в вопросах и ответах
извините, вот наткнулся на такую прогу, и никак не могу переделать под CVAVR, поможете?
выставляю код
это юарт)
выставляю код
Код: Выделить всё
#define F_CPU 8000000
#define bit_test(data,bitno) (data & (1 << bitno))
#include <mega8.h>
#include <delay.h>
#include <interrupt.h>
#define _BV(x) (1<<(x))
void answer();
/*
ISR(USART_RXC_vect)
{
switch(UDR)
{
case '1': PORTB=0; break;
case '2': PORTB=0xFF; break;
case '3': answer(); break;
default: break;
}
} */
void UART_snt(char*text)
{
for(unsigned char i=0;text[i]!=0;i++)
{
while(1)
if((UCSRA & (1<<UDRE))==1<<UDRE)
break;
UDR=text[i];
}
}
void UART_snt_byte(unsigned char text)
{
while(1)
if((UCSRA & (1<<UDRE))==1<<UDRE)
break;
UDR=text;
}
void ascii_print(char*text, unsigned char nom,unsigned char funk)
{
unsigned char buf1, buf2, buf3;
unsigned char i=0;
buf1=nom/100;
if(buf1!=0) text[i++]=buf1+48;
buf2=nom/10-buf1*10;
if(buf1!=0 || buf2!=0) text[i++]=buf2+48;
buf3=nom-buf1*100-buf2*10;
text[i++]=buf3+48;
if(funk==1) text[i++]='\0';
}
/*unsigned char ascii_scan(char*text, unsigned char positions)
{
}*/
void answer()
{
PORTB=0b11111110;
for(unsigned char j=1;j<=200;j++)
{
char text[4];
ascii_print(text, j, 1);
UART_snt(text);
UART_snt_byte(32);
}
PORTB=0b11111110;
PORTB=0b01111111;
_delay_ms(1000);
PORTB=0b11111111;
}
void UART_init(void)
{
#define XTAL 8000000L
#define baudrate 9600L
#define bauddivider (XTAL/(16*baudrate)-1)
#define HI(x) ((x)>>8)
#define LO(x) ((x)& 0xFF)
UBRRL = LO(bauddivider);
UBRRH = HI(bauddivider);
UCSRA = 0;
UCSRB = 1<<RXEN|1<<TXEN|1<<RXCIE|0<<TXCIE;
UCSRC = 1<<URSEL|1<<UCSZ0|1<<UCSZ1;
}
int main(void)
{
DDRB=0xFF;
PORTB=0xFF;
DDRA=0;
PORTA=0xFF;
UART_init();
sei();
UART_snt("ATMega start..\r\n\0");
while(1)
{
if(PINA!=0xFF)
{
char buf=PINA;
_delay_ms(150);
if(buf!=PINA) buf=PINA;
switch(buf)
{
case 0b11111110: UART_snt("0 button\r\n\0"); break;
case 0b11111101: UART_snt("1 button\r\n\0"); break;
case 0b11111011: UART_snt("2 button\r\n\0"); break;
case 0b11110111: UART_snt("3 button\r\n\0"); break;
case 0b11101111: UART_snt("4 button\r\n\0"); break;
case 0b11011111: UART_snt("5 button\r\n\0"); break;
case 0b10111111: UART_snt("6 button\r\n\0"); break;
case 0b01111111: UART_snt("7 button\r\n\0"); break;
case 0b11111100: UART_snt("Hi Sergey!\r\n\0"); break;
case 0b11110011: PORTB=0; break;
case 0b11001111: PORTB=0xFF; break;
case 0b00111111: UART_snt("\f\0"); break;
default: break;
}
_delay_ms(150);
}
}
return 0;
}
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18657
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
это тихий ужас!chinga писал(а):это юарт)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- hd44780
- Встал на лапы
- Сообщения: 132
- Зарегистрирован: Вт июл 14, 2009 09:27:37
- Откуда: Донецк, Украина
Re: CodeVision AVR в вопросах и ответах
На хрен (извиняюсь) Вам её переделывать?
CvAVR имеет генератор начального кода, воспользуйтесь им. Генерит нормальный код, который не нужно переделывать.
CvAVR имеет генератор начального кода, воспользуйтесь им. Генерит нормальный код, который не нужно переделывать.
Re: CodeVision AVR в вопросах и ответах
что нужно изменить для этого?
Re: CodeVision AVR в вопросах и ответах
наверное новый проект начать 
-
clawham
- Поставщик валерьянки для Кота
- Сообщения: 1957
- Зарегистрирован: Пт окт 31, 2008 09:38:55
- Откуда: Одесса
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Здравствуйте снова Товарищи судари...
постала предо мной непостижимая задача...
пишу свой ваттметр...катастрофически не хватает памяти...
много текстов и менюшек..а мега 8
так вот....много текста я уже вынес из флеши в еепрому...
но есть ещё туева хуча конструкций типа
вот как бы эту строку тоже вынести в еепрому? причём так чтоб назад считать было бы не затратно по коду....
ну и аналогичный вопрос
есть функция
я её хочу вызывать с параметром
вот как такие преобразования делать-то? чтоб и еепромину можно было передавать и флешевую..и внешнееепроминную...
постала предо мной непостижимая задача...
пишу свой ваттметр...катастрофически не хватает памяти...
много текстов и менюшек..а мега 8
так вот....много текста я уже вынес из флеши в еепрому...
но есть ещё туева хуча конструкций типа
Код: Выделить всё
printf("#%.2i:", NumCounter);
Код: Выделить всё
"#%.2i:"ну и аналогичный вопрос
есть функция
Код: Выделить всё
void FP(char* text)
{
...
puts(text);
...
}
Код: Выделить всё
void FP_eep(eeprom char* text)
{
... // какие то преобразования типов и...
FP(text1); // но техт1 это уже указатель на строку в оперативке
}
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Не доверяйте русским лужам - это может быть вход в метро.
- avreal
- Опытный кот
- Сообщения: 842
- Зарегистрирован: Чт дек 31, 2009 19:27:45
- Откуда: Бровари, Україна
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Если катастрофически не хватает памяти, то в первую очередь нужно отказаться от printf.
При том, что я сам его люблю и при первой же возможности прикручиваю...
При том, что я сам его люблю и при первой же возможности прикручиваю...
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
-
clawham
- Поставщик валерьянки для Кота
- Сообщения: 1957
- Зарегистрирован: Пт окт 31, 2008 09:38:55
- Откуда: Одесса
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
ну я как видите итак юзаю только лонги а мне лонги и надо выводить...с точным значением колличества выводимых символов-пробелов или нулей
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Не доверяйте русским лужам - это может быть вход в метро.
-
clawham
- Поставщик валерьянки для Кота
- Сообщения: 1957
- Зарегистрирован: Пт окт 31, 2008 09:38:55
- Откуда: Одесса
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
да и скажем так...текстам как раз и место во внешней микросхеме еепрома ибо это гибкость и возможность поменять язык не лазия в прошивку
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Не доверяйте русским лужам - это может быть вход в метро.
- hd44780
- Встал на лапы
- Сообщения: 132
- Зарегистрирован: Вт июл 14, 2009 09:27:37
- Откуда: Донецк, Украина
Re: CodeVision AVR в вопросах и ответах
Я предвидел это .... И изначально взял Mega16.clawham писал(а):пишу свой ваттметр...катастрофически не хватает памяти...
много текстов и менюшек..а мега 8
Ненамного дороже, зато теперь нет проблем ни с printf, ни с плавающей точкой (ну люблю я её
Зато теперь и кнопки, и индикатор, и режим калибровки и плавающая точка. И флэшки ещё 40% свободно - пиши что хочешь.
А с 8 мегой одни проблемы - то памяти мало, то ног не хватает. Кварц не поставишь, ибо он от порта B ноги отбирает
Доп. EEPROM тоже надо куда-то подключать и писать код для работы с ним.
Мой совет - возьмите контроллер покруче и не мучайтесь.


