Я хочу в последнюю ячейку массива, который будет передаватся радиомодулем, записывать контрольную сумму, а в приемнике проверять её.vitalik_1984 писал(а):эти две записи почти эквивалентны.Насколько я понял имя буфера это адрес нулевой ячейки.
а вы хотите четвертой ячейке этого буфера присвоить значение,возвращаемое функцией?
CodeVision AVR в вопросах и ответах
«И всё-таки она вертится!»
- Реклама
Код: Выделить всё
void main(void)
PORTB=0x00;И это:
Код: Выделить всё
unsigned data;Docendo discimus
По умолчанию в си компилятор обычно все к инт сводит вроде.
Пишем
Память еепром 2 байта занято.
Пишем
Код: Выделить всё
eeprom unsigned data = 0xff;А что вам не нравится в этой записи?Функция ведь ничего не возвращает...И порт в ноль тоже можно выставить.pyzhman писал(а):void main(void)
PORTB=0x00;
В поисках истины человек развивается.
Мне? Да, откровенно говоря, по барабану как написано. Пусть пишут как хотят. Но не работает почему-то у товарища.
Docendo discimus
- Реклама
Где смайл где кота в его г... запихивают?
Vatson4ik
вы типа объявили локальную переменную(не там где нужно), и пихаете ее неинициализированное(пустое) значение в регистр?
Думаю нужно убрать unsigned data; и добавить volatile в начале где глобальные переменные.
Почему не работает
не пойму
Вам мастер_ломастер правильно сказал, лучше почитать и перечитать еще раз.А то так каждый раз тыкать будут.
Неплохо было бы еще и даташит на предмет обсуждения.
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 в начале где глобальные переменные.
Почему не работает
Вам мастер_ломастер правильно сказал, лучше почитать и перечитать еще раз.А то так каждый раз тыкать будут.
Неплохо было бы еще и даташит на предмет обсуждения.
В поисках истины человек развивается.
Кстати! Кто тут рисовал смайлы? Очень хорошая идея.
Docendo discimus
- Сообщения: 106
- Зарегистрирован: Пн мар 26, 2012 05:25:06
vitalik_1984 писал(а):Где смайл где кота в его г... запихивают?
Не, ну ладно макнуть того кто слишком много "знает". Но подобная агрессивность к новичку откуда возникает? Не нравится вопрос, просто проигнорируйте.
да ладно,я же шуткой сказал,а все зацепились.когда кота с автоматом шлют это же не значит что расстрелять готовы.
и вообще я ошибки указал грубые, если что.
и хватит флудить по этому поводу.
и вообще я ошибки указал грубые, если что.
и хватит флудить по этому поводу.
В поисках истины человек развивается.
- Сообщения: 26671
- Зарегистрирован: Пт май 18, 2007 22:56:58
Подскажите, почему ругается на знак больше/меньше (инвалид экспрессии), и как надо это правильно написать в switch?
switch (x) {
case <10: y++;
case >20: y--;
break;
}
Или как написать диапазон возможных значений переменной?
switch (x) {
case <10: y++;
case >20: y--;
break;
}
Или как написать диапазон возможных значений переменной?
Последний раз редактировалось Upgrader Пт апр 13, 2012 22:45:51, всего редактировалось 1 раз.
Не променяю медь на ржавую несгорайку!
Параметр при case д/б числом. Напишите
Код: Выделить всё
if(x < 10) ++y;
if(x > 20) --y;Docendo discimus
- Сообщения: 45
- Зарегистрирован: Вс янв 15, 2012 16:31:49
Всем привет!
Вот написал код
Создал проект в протеусе, после того как нажал на кнопку(PIND.1 == 1), светодиоды начали мигать постоянно, а мне нужно, чтоб код выполнился только один раз. В чем проблема?
Вот написал код
Код: Выделить всё
#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;
}
}
}
Убрать вайл, а вместо
написать
Код: Выделить всё
if (PIND.1 == 1)Код: Выделить всё
while(!PIND.1);//ожидание нажатия кнопки.Docendo discimus
- Сообщения: 45
- Зарегистрирован: Вс янв 15, 2012 16:31:49
pyzhman, сначала светодиод просто мигает, а когда я нажимаю на кнопку, перестает и все, даже если еще раз нажать, то не мигает 
Ну и? Виртуально представлять себе схему и то, что вы там понаписали?
Docendo discimus
- Сообщения: 45
- Зарегистрирован: Вс янв 15, 2012 16:31:49
Мне-то как схему представить и увидеть то, что вы там понаписали? Только прикладывайте рисунок, протеус тут половина присутствующих не увидит.
Docendo discimus
- Сообщения: 45
- Зарегистрирован: Вс янв 15, 2012 16:31:49
А второй конец кнопки? А второй конец светодиода? А полярность светодиода? А программа? 
Docendo discimus
- Сообщения: 45
- Зарегистрирован: Вс янв 15, 2012 16:31:49
Код: Выделить всё
#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;
}
}


