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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

vitalik_1984 писал(а):эти две записи почти эквивалентны.Насколько я понял имя буфера это адрес нулевой ячейки.
а вы хотите четвертой ячейке этого буфера присвоить значение,возвращаемое функцией?

Я хочу в последнюю ячейку массива, который будет передаватся радиомодулем, записывать контрольную сумму, а в приемнике проверять её.
«И всё-таки она вертится!»
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

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

void main(void)
PORTB=0x00;

И это оно пропускает? :shock:
И это:

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

unsigned data;
?
Docendo discimus
Vatson4ik
Родился
Сообщения: 16
Зарегистрирован: Ср мар 04, 2009 06:57:47
Откуда: Москва

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

Сообщение Vatson4ik »

Инициализацию порта он сам создает.
и все пропускает
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

По умолчанию в си компилятор обычно все к инт сводит вроде.
Пишем

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

eeprom unsigned data = 0xff;

Память еепром 2 байта занято.

pyzhman писал(а):void main(void)
PORTB=0x00;

А что вам не нравится в этой записи?Функция ведь ничего не возвращает...И порт в ноль тоже можно выставить.
В поисках истины человек развивается.
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

Мне? Да, откровенно говоря, по барабану как написано. Пусть пишут как хотят. Но не работает почему-то у товарища.
Docendo discimus
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

Где смайл где кота в его г... запихивают?
Vatson4ik

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


interrupt 
[SPI_STC] void spi_isr(void)
{
unsigned data;// Это одна переменная
///////////////----------

void main(void){
// Declare your Local variables here !!!!!!!!!<<----------
while(1){
// Place your code here !!!!!!!!!!!!

unsigned data;// Это вторая переменная
SPDR=data; 

вы типа объявили локальную переменную(не там где нужно), и пихаете ее неинициализированное(пустое) значение в регистр?

Думаю нужно убрать unsigned data; и добавить volatile в начале где глобальные переменные.

Почему не работает :dont_know: не пойму :)))
Вам мастер_ломастер правильно сказал, лучше почитать и перечитать еще раз.А то так каждый раз тыкать будут.

Неплохо было бы еще и даташит на предмет обсуждения.
В поисках истины человек развивается.
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

Кстати! Кто тут рисовал смайлы? Очень хорошая идея.
Docendo discimus
Совесть
Встал на лапы
Сообщения: 106
Зарегистрирован: Пн мар 26, 2012 05:25:06

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

Сообщение Совесть »

vitalik_1984 писал(а):Где смайл где кота в его г... запихивают?
:))) а надо ли оно вам, а то вдруг самого полоскать в этой субстанции будут?
Не, ну ладно макнуть того кто слишком много "знает". Но подобная агрессивность к новичку откуда возникает? Не нравится вопрос, просто проигнорируйте.
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

да ладно,я же шуткой сказал,а все зацепились.когда кота с автоматом шлют это же не значит что расстрелять готовы.
и вообще я ошибки указал грубые, если что.
и хватит флудить по этому поводу.
В поисках истины человек развивается.
Аватара пользователя
Upgrader
Друг Кота
Сообщения: 26671
Зарегистрирован: Пт май 18, 2007 22:56:58

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

Сообщение Upgrader »

Подскажите, почему ругается на знак больше/меньше (инвалид экспрессии), и как надо это правильно написать в switch?

switch (x) {
case <10: y++;
case >20: y--;
break;
}

Или как написать диапазон возможных значений переменной?
Последний раз редактировалось Upgrader Пт апр 13, 2012 22:45:51, всего редактировалось 1 раз.
Не променяю медь на ржавую несгорайку!
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

Параметр при case д/б числом. Напишите

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

if(x < 10) ++y;
if(x > 20) --y;
Docendo discimus
SH_Pasha
Открыл глаза
Сообщения: 45
Зарегистрирован: Вс янв 15, 2012 16:31:49

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

Сообщение SH_Pasha »

Всем привет!
Вот написал код

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

#include <tiny2313.h>
#include <stdlib.h>
#include <delay.h>

void main(void) {
DDRD.1=0x00;
DDRB.2=0xff;
while(1)
{
if (PIND.1 == 1)
{
PORTB.2=1;
delay_ms(20);
PORTB.2=0;
delay_ms(40);
PORTB.2=1;
delay_ms(10);
PORTB.2=0;
}
}
}


Создал проект в протеусе, после того как нажал на кнопку(PIND.1 == 1), светодиоды начали мигать постоянно, а мне нужно, чтоб код выполнился только один раз. В чем проблема?
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

Убрать вайл, а вместо

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

if (PIND.1 == 1)

написать

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

while(!PIND.1);//ожидание нажатия кнопки.
Docendo discimus
SH_Pasha
Открыл глаза
Сообщения: 45
Зарегистрирован: Вс янв 15, 2012 16:31:49

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

Сообщение SH_Pasha »

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

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

Сообщение pyzhman »

Ну и? Виртуально представлять себе схему и то, что вы там понаписали?
Docendo discimus
SH_Pasha
Открыл глаза
Сообщения: 45
Зарегистрирован: Вс янв 15, 2012 16:31:49

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

Сообщение SH_Pasha »

pyzhman, спаял, работает точно так же как и в протеусе
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

Мне-то как схему представить и увидеть то, что вы там понаписали? Только прикладывайте рисунок, протеус тут половина присутствующих не увидит.
Docendo discimus
SH_Pasha
Открыл глаза
Сообщения: 45
Зарегистрирован: Вс янв 15, 2012 16:31:49

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

Сообщение SH_Pasha »

к PD1 присоединена кнопка
к PB2 светодиод
Вот и все
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

А второй конец кнопки? А второй конец светодиода? А полярность светодиода? А программа? :kill:
Docendo discimus
SH_Pasha
Открыл глаза
Сообщения: 45
Зарегистрирован: Вс янв 15, 2012 16:31:49

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

Сообщение SH_Pasha »

:o

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

#include <mega8.h>
#include <stdlib.h>
#include <delay.h>

void main(void) {
DDRD.1=0x00;
DDRB.2=0xff;
while(!PIND.1)
{
PORTB.2=1;
delay_ms(100);
PORTB.2=0;
delay_ms(200);
PORTB.2=1;
delay_ms(50);
PORTB.2=0;
}
}



Второй конец кнопки к плюсу, второй конец светодиода к минусу
Ответить

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