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


Спойлер
- Вложения
-
- 2012-09-23_095119.png
- (26.3 КБ) 706 скачиваний
А из наших труб идет необычный дым. Стой! Опасная зона! Работа мозга!...
Re: CodeVision AVR в вопросах и ответах
у меня нет таких настроек
и подскажите насчет макроса,чет непойму,так(выдает ошибку):
#define data(x) (SPDR=x; while (!( SPSR&(1<<7))){}); // макрос
data(0xff);//вызов макроса
и подскажите насчет макроса,чет непойму,так(выдает ошибку):
#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 в вопросах и ответах
Попробуйте так
Видимо, у Вас версия CodeVision более ранняя. Можно попробовать задать в тексте программы до подключения всех заголовочных файлов. То есть в самом начале.
В моей версии это помогает.
Код: Выделить всё
#define data(x) SPDR=x; while (!( SPSR&(1<<7)));
Код: Выделить всё
#define _IO_BITS_DEFINITIONS_А из наших труб идет необычный дым. Стой! Опасная зона! Работа мозга!...
Re: CodeVision AVR в вопросах и ответах
Может, так будет лучше?спящий писал(а):Код: Выделить всё
#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 раз.
С уважением,
Виктор.
Виктор.
- Реклама
Re: CodeVision AVR в вопросах и ответах
(SPSR & 0x80) - Нолик вместо "о", а то опять ошибка вылезет и вопросы будут.ut1wpr писал(а):спящий писал(а):Код: Выделить всё
( !(SPSR & ox80) )
Re: CodeVision AVR в вопросах и ответах
Вопрос почкму выдает ошибку при вставке printf('dhdhfb'); ну если ктонить шарит в картах почему при чтениии карты выдает FF,хотя CMD0(выдала ответ 01),CMD1(выдала ответ00) прошли?
#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) ;
}
}
}
Спойлер
#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 скачиваний
Re: CodeVision AVR в вопросах и ответах
Чтобы программировать - надо хотя бы немного с "английским" дружить. Без него смысла нет.
В мессаге указано:Не хватает стека! Пожалуйста увеличьте стек!
В мессаге указано:Не хватает стека! Пожалуйста увеличьте стек!
Re: CodeVision AVR в вопросах и ответах
а как его увеличить? на асме вроде так:
ldi r16,high(RAMEND) ;
out SPH,r16 ;
ldi r16,low(RAMEND) ;
out SPl,r16 ;
а на C,в кодевисион?
ldi r16,high(RAMEND) ;
out SPH,r16 ;
ldi r16,low(RAMEND) ;
out SPl,r16 ;
а на C,в кодевисион?
Re: CodeVision AVR в вопросах и ответах
Project->Configure
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Следует уточнить, что это не системный стек, а размер стека данных, фича такая в кодевижене.
Docendo discimus
-
doband
- Родился
- Сообщения: 4
- Зарегистрирован: Вт окт 02, 2012 18:41:18
- Откуда: Пермь
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Всем привет.
Помогите с написанием кода для Attiny13 такого плана:
К МК подключен 1 светодиод к одному из выводов
1 реле через транзистор к другому выводу
и ещё 3 вывода испоьзуются как кнопки выбора работ.
НАДО:
светодиод чтоб моргал с периодичностью 1 раз в 5 сек (всегда)
а реле работало в зависимости от выбранной кнопки
1 включено всегда
2 включено 15 минут выключено 45 минут (и далее по кругу)
3 включено 30 минут выключено 30 минут (и далее по кругу)
буду очень благодарен...
Помогите с написанием кода для 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 в вопросах и ответах
А выключеное состояние реле не рассматривается?
Вам не нужно режим светодиодом показывать?Просто всегда моргает или все же только когда реле включено?
Вам не нужно режим светодиодом показывать?Просто всегда моргает или все же только когда реле включено?
-
doband
- Родился
- Сообщения: 4
- Зарегистрирован: Вт окт 02, 2012 18:41:18
- Откуда: Пермь
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
ну можно второй светодиод когда реле отключеноvitalik_1984 писал(а):А выключеное состояние реле не рассматривается?
Вам не нужно режим светодиодом показывать?Просто всегда моргает или все же только когда реле включено?
http://perm-mag.ru icq 9три28один7
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
а чем выключать предполагается?Какое то тех задание размытое.Соответственно и решений тоже может быть уйма. Вместо одного правильного.
Короче раз ног мало можно сделать несколько кнопок через Ацп сделаем четыре: три режима и выключение.
Так же можно сделать и два светодиода один будет моргать в зависимости от режима, если включен один из режимов и другой диод если выключены.
Короче раз ног мало можно сделать несколько кнопок через Ацп сделаем четыре: три режима и выключение.
Так же можно сделать и два светодиода один будет моргать в зависимости от режима, если включен один из режимов и другой диод если выключены.
-
doband
- Родился
- Сообщения: 4
- Зарегистрирован: Вт окт 02, 2012 18:41:18
- Откуда: Пермь
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
конечно можно и так, да просто это будет включатся вентиляция... вот и нет так такового выключения (просто отключение из сети и есть стоп программы)vitalik_1984 писал(а):а чем выключать предполагается?Какое то тех задание размытое.Соответственно и решений тоже может быть уйма. Вместо одного правильного.
Короче раз ног мало можно сделать несколько кнопок через Ацп сделаем четыре: три режима и выключение.
Так же можно сделать и два светодиода один будет моргать в зависимости от режима, если включен один из режимов и другой диод если выключены.
http://perm-mag.ru icq 9три28один7
-
doband
- Родился
- Сообщения: 4
- Зарегистрирован: Вт окт 02, 2012 18:41:18
- Откуда: Пермь
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
вот схема
- Вложения
-
- 555.JPG
- (68.56 КБ) 241 скачивание
http://perm-mag.ru icq 9три28один7
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Вот со схемы и нужно было начинать.А ресет будем как ресет использовать или переключим его в порт ввода-вывода.
И что это за джамперы?Вы от нас скрываете какие то подробности, которые опять же отдаляют от решения вашей задачи.
И что это за джамперы?Вы от нас скрываете какие то подробности, которые опять же отдаляют от решения вашей задачи.
-
Demon
- Нашел транзистор. Понюхал.
- Сообщения: 164
- Зарегистрирован: Сб янв 20, 2007 20:44:33
- Откуда: Из закаулков вашей души
Re: CodeVision AVR в вопросах и ответах
Как в CVAVR произвести сдвиг с переносом (в ассемблере ROR и ROL) или как указать чтобы переменная помещалась в один из РОН
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: CodeVision AVR в вопросах и ответах
.. сделать asm_вставку, а еще лучше подумать и решить задачу чисто средствами С.Как в CVAVR произвести сдвиг с переносом


