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

Обсуждаем контроллеры компании Atmel.
спящий
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

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

Сообщение спящий »

я как понял это не для всех контроллеров?для mega48 подойдет?
чето немогу найти где эту галку поставить,может версия другая.
Реклама
Аватара пользователя
U235
Встал на лапы
Сообщения: 135
Зарегистрирован: Вт фев 21, 2012 20:42:26
Откуда: Санкт-Петербург, Россия, Земля

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

Сообщение U235 »

Как то так:
СпойлерИзображение


Изображение
Вложения
2012-09-23_095119.png
(26.3 КБ) 705 скачиваний
А из наших труб идет необычный дым. Стой! Опасная зона! Работа мозга!...
Реклама
спящий
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

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

Сообщение спящий »

у меня нет таких настроек :cry:

и подскажите насчет макроса,чет непойму,так(выдает ошибку):

#define data(x) (SPDR=x; while (!( SPSR&(1<<7))){}); // макрос

data(0xff);//вызов макроса
Вложения
Безымянный.GIF
(94.25 КБ) 364 скачивания
Аватара пользователя
U235
Встал на лапы
Сообщения: 135
Зарегистрирован: Вт фев 21, 2012 20:42:26
Откуда: Санкт-Петербург, Россия, Земля

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

Сообщение U235 »

Попробуйте так

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

#define data(x) SPDR=x; while (!( SPSR&(1<<7)));
Видимо, у Вас версия CodeVision более ранняя. Можно попробовать задать в тексте программы до подключения всех заголовочных файлов. То есть в самом начале.

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

#define _IO_BITS_DEFINITIONS_
В моей версии это помогает.
А из наших труб идет необычный дым. Стой! Опасная зона! Работа мозга!...
Реклама
Эиком - электронные компоненты и радиодетали
ut1wpr
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

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

Сообщение ut1wpr »

спящий писал(а):

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

#define data(x)  (SPDR=x; while (!( SPSR&(1<<7))){}); // макрос
Может, так будет лучше?

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

#define data(x) {SPDR=x; while ( !(SPSR & 0x80) ) continue;}
Последний раз редактировалось ut1wpr Вс сен 23, 2012 15:38:36, всего редактировалось 1 раз.
С уважением,
Виктор.
Реклама
Аватара пользователя
rs39
Открыл глаза
Сообщения: 53
Зарегистрирован: Сб май 07, 2011 14:35:24
Откуда: Россия

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

Сообщение rs39 »

ut1wpr писал(а):
спящий писал(а):

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

( !(SPSR & ox80) )
(SPSR & 0x80) - Нолик вместо "о", а то опять ошибка вылезет и вопросы будут.
Реклама
спящий
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

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

Сообщение спящий »

Вопрос почкму выдает ошибку при вставке printf('dhdhfb'); ну если ктонить шарит в картах почему при чтениии карты выдает FF,хотя CMD0(выдала ответ 01),CMD1(выдала ответ00) прошли?



Спойлер#include <stdio.h>
#include <mega48.h>
#include <delay.h>
#include <string.h>
#include <io.h>

#define data(x) SPDR=x; while (!( SPSR&(1<<7)));

void main() {
int i,temp;
char array[100] ;
DDRD.2=0;
DDRB=0b11101111;
DDRC=255;


// 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
UCSR0A=0x00;
UCSR0B=0x18;
UCSR0C=0x06;
UBRR0H=0x00;
UBRR0L=0x33;

// настройка шим

TCCR1A=0b10000001;
TCCR1B=0b00001001;
TIMSK1=0b01000000;



//настройка SPI
SPCR=0b01010011;
SPSR=0x01;


//подаем 74 импульса
PORTB.2=1;
PORTB.3=1;
for(i=0;i<80;i++)
{

data(0xff)
}
PORTB.2=0;
delay_ms(1);



//CMD0


data(0x40);
data(0x00);
data(0x00);
data(0x00);
data(0x00);
data(0x15);
putchar('a');

while (temp!=0x01)
{temp= SPDR;
data(0xff)

if (i>50)
{data(0x40);
data(0x00);
data(0x00);
data(0x00);
data(0x00);
data(0x15);
i=0;
}
i++;
}
putchar(temp);
putchar('b');

//CMD1
data(0x41);
data(0x00);
data(0x00);
data(0x00);
data(0x00);
data(0x95);
while (temp!=0x00)
{temp= SPDR;
data(0xff);

}
putchar(temp);
delay_ms(200);


//cmd 49

data(0x49);
data(0x00);
data(0x00);
data(0x00);
data(0x00);
data(0x95);
for(i=0;i<17;i++)
{
putchar(SPDR);
}


putchar('v');
printf("qqqqq");
//CMD17 чтение байтов
data(0x52);
data(0x00);
data(0x00);
data(0x00);
data(0x00);
data(0x95);

while (temp==0xff)
{temp= SPDR;
data(0xff);
}

while (temp!=0xfe)
{temp= SPDR;
data(0xff);
}

putchar(temp);
putchar('g');

while (temp==0xff)
{temp= SPDR;
data(0xff);
}


while(1){

for (i=0;i<100;i++)
{
data(0xff);
array=SPDR ;
}



for (i=0;i<100;i++)
{


putchar(array) ;
}
}

}
Вложения
Безымянный.GIF
(52.07 КБ) 366 скачиваний
Аватара пользователя
rs39
Открыл глаза
Сообщения: 53
Зарегистрирован: Сб май 07, 2011 14:35:24
Откуда: Россия

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

Сообщение rs39 »

Чтобы программировать - надо хотя бы немного с "английским" дружить. Без него смысла нет.
В мессаге указано:Не хватает стека! Пожалуйста увеличьте стек!
спящий
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

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

Сообщение спящий »

а как его увеличить? на асме вроде так:

ldi r16,high(RAMEND) ;
out SPH,r16 ;
ldi r16,low(RAMEND) ;
out SPl,r16 ;

а на C,в кодевисион?
Аватара пользователя
rs39
Открыл глаза
Сообщения: 53
Зарегистрирован: Сб май 07, 2011 14:35:24
Откуда: Россия

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

Сообщение rs39 »

Project->Configure
pr_conf.png
(11.95 КБ) 391 скачивание
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

Следует уточнить, что это не системный стек, а размер стека данных, фича такая в кодевижене.
Docendo discimus
doband
Родился
Сообщения: 4
Зарегистрирован: Вт окт 02, 2012 18:41:18
Откуда: Пермь
Контактная информация:

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

Сообщение doband »

Всем привет.

Помогите с написанием кода для Attiny13 такого плана:

К МК подключен 1 светодиод к одному из выводов

1 реле через транзистор к другому выводу

и ещё 3 вывода испоьзуются как кнопки выбора работ.

НАДО:

светодиод чтоб моргал с периодичностью 1 раз в 5 сек (всегда)

а реле работало в зависимости от выбранной кнопки

1 включено всегда

2 включено 15 минут выключено 45 минут (и далее по кругу)

3 включено 30 минут выключено 30 минут (и далее по кругу)

буду очень благодарен...
http://perm-mag.ru icq 9три28один7
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

А выключеное состояние реле не рассматривается?
Вам не нужно режим светодиодом показывать?Просто всегда моргает или все же только когда реле включено?
doband
Родился
Сообщения: 4
Зарегистрирован: Вт окт 02, 2012 18:41:18
Откуда: Пермь
Контактная информация:

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

Сообщение doband »

vitalik_1984 писал(а):А выключеное состояние реле не рассматривается?
Вам не нужно режим светодиодом показывать?Просто всегда моргает или все же только когда реле включено?
ну можно второй светодиод когда реле отключено
http://perm-mag.ru icq 9три28один7
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

а чем выключать предполагается?Какое то тех задание размытое.Соответственно и решений тоже может быть уйма. Вместо одного правильного.

Короче раз ног мало можно сделать несколько кнопок через Ацп сделаем четыре: три режима и выключение.
Так же можно сделать и два светодиода один будет моргать в зависимости от режима, если включен один из режимов и другой диод если выключены.
doband
Родился
Сообщения: 4
Зарегистрирован: Вт окт 02, 2012 18:41:18
Откуда: Пермь
Контактная информация:

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

Сообщение doband »

vitalik_1984 писал(а):а чем выключать предполагается?Какое то тех задание размытое.Соответственно и решений тоже может быть уйма. Вместо одного правильного.

Короче раз ног мало можно сделать несколько кнопок через Ацп сделаем четыре: три режима и выключение.
Так же можно сделать и два светодиода один будет моргать в зависимости от режима, если включен один из режимов и другой диод если выключены.
конечно можно и так, да просто это будет включатся вентиляция... вот и нет так такового выключения (просто отключение из сети и есть стоп программы)
http://perm-mag.ru icq 9три28один7
doband
Родился
Сообщения: 4
Зарегистрирован: Вт окт 02, 2012 18:41:18
Откуда: Пермь
Контактная информация:

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

Сообщение doband »

вот схема
Вложения
555.JPG
(68.56 КБ) 241 скачивание
http://perm-mag.ru icq 9три28один7
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

Вот со схемы и нужно было начинать.А ресет будем как ресет использовать или переключим его в порт ввода-вывода.
И что это за джамперы?Вы от нас скрываете какие то подробности, которые опять же отдаляют от решения вашей задачи.
Demon
Нашел транзистор. Понюхал.
Сообщения: 164
Зарегистрирован: Сб янв 20, 2007 20:44:33
Откуда: Из закаулков вашей души

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

Сообщение Demon »

Как в CVAVR произвести сдвиг с переносом (в ассемблере ROR и ROL) или как указать чтобы переменная помещалась в один из РОН
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

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

Сообщение ChipKiller »

Как в CVAVR произвести сдвиг с переносом
.. сделать asm_вставку, а еще лучше подумать и решить задачу чисто средствами С.
Ответить

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