Страница 221 из 421

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

Добавлено: Вс сен 23, 2012 09:05:18
спящий
я как понял это не для всех контроллеров?для mega48 подойдет?
чето немогу найти где эту галку поставить,может версия другая.

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

Добавлено: Вс сен 23, 2012 09:22:54
U235
Как то так:
СпойлерИзображение


Изображение

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

Добавлено: Вс сен 23, 2012 10:07:58
спящий
у меня нет таких настроек :cry:

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

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

data(0xff);//вызов макроса

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

Добавлено: Вс сен 23, 2012 10:36:02
U235
Попробуйте так

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

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

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

#define _IO_BITS_DEFINITIONS_
В моей версии это помогает.

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

Добавлено: Вс сен 23, 2012 10:59:43
ut1wpr
спящий писал(а):

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

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

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

#define data(x) {SPDR=x; while ( !(SPSR & 0x80) ) continue;}

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

Добавлено: Вс сен 23, 2012 12:06:43
rs39
ut1wpr писал(а):
спящий писал(а):

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

( !(SPSR & ox80) )
(SPSR & 0x80) - Нолик вместо "о", а то опять ошибка вылезет и вопросы будут.

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

Добавлено: Чт сен 27, 2012 17:25:36
спящий
Вопрос почкму выдает ошибку при вставке 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) ;
}
}

}

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

Добавлено: Чт сен 27, 2012 17:51:00
rs39
Чтобы программировать - надо хотя бы немного с "английским" дружить. Без него смысла нет.
В мессаге указано:Не хватает стека! Пожалуйста увеличьте стек!

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

Добавлено: Чт сен 27, 2012 18:37:16
спящий
а как его увеличить? на асме вроде так:

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

а на C,в кодевисион?

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

Добавлено: Чт сен 27, 2012 19:01:40
rs39
Project->Configure
pr_conf.png
(11.95 КБ) 394 скачивания

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

Добавлено: Чт сен 27, 2012 19:15:10
pyzhman
Следует уточнить, что это не системный стек, а размер стека данных, фича такая в кодевижене.

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

Добавлено: Вт окт 02, 2012 19:05:02
doband
Всем привет.

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

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

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

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

НАДО:

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

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

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

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

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

буду очень благодарен...

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

Добавлено: Вт окт 02, 2012 21:22:33
vitalik_1984
А выключеное состояние реле не рассматривается?
Вам не нужно режим светодиодом показывать?Просто всегда моргает или все же только когда реле включено?

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

Добавлено: Вт окт 02, 2012 21:38:00
doband
vitalik_1984 писал(а):А выключеное состояние реле не рассматривается?
Вам не нужно режим светодиодом показывать?Просто всегда моргает или все же только когда реле включено?
ну можно второй светодиод когда реле отключено

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

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

Короче раз ног мало можно сделать несколько кнопок через Ацп сделаем четыре: три режима и выключение.
Так же можно сделать и два светодиода один будет моргать в зависимости от режима, если включен один из режимов и другой диод если выключены.

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

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

Короче раз ног мало можно сделать несколько кнопок через Ацп сделаем четыре: три режима и выключение.
Так же можно сделать и два светодиода один будет моргать в зависимости от режима, если включен один из режимов и другой диод если выключены.
конечно можно и так, да просто это будет включатся вентиляция... вот и нет так такового выключения (просто отключение из сети и есть стоп программы)

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

Добавлено: Ср окт 03, 2012 08:03:35
doband
вот схема

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

Добавлено: Ср окт 03, 2012 13:30:45
vitalik_1984
Вот со схемы и нужно было начинать.А ресет будем как ресет использовать или переключим его в порт ввода-вывода.
И что это за джамперы?Вы от нас скрываете какие то подробности, которые опять же отдаляют от решения вашей задачи.

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

Добавлено: Сб окт 06, 2012 10:47:23
Demon
Как в CVAVR произвести сдвиг с переносом (в ассемблере ROR и ROL) или как указать чтобы переменная помещалась в один из РОН

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

Добавлено: Сб окт 06, 2012 16:33:39
ChipKiller
Как в CVAVR произвести сдвиг с переносом
.. сделать asm_вставку, а еще лучше подумать и решить задачу чисто средствами С.