реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Подскажите как реализовать.
TamTam
сообщение May 31 2006, 23:56
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 293
Регистрация: 14-03-06
Пользователь №: 15 254



Есть две процедуры одна запись в eeprom мк ( byte_write(адрес,значение) ) другая чтение (byte_read(адрес))

обе процедуры рабочие на все 100.

требуется :
1. написать строку дефайн которая будет возвращать значение байта
2. создать строку дефайн которая инвертировала состояние байта, если 1 то 0 если 0 то 1

с первым не вопрос
Код
#define ALARM                   byte_read(127);  // возвращает значение 127 байта в памяти eeprom мк


а вот как 2 реализовать.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jun 1 2006, 00:12
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата
а вот как 2 реализовать.

#define STORE(a) byte_write(127,a)
или
#define STORE(a,d) byte_write(a,d)

тока зачем так?

Сообщение отредактировал GetSmart - Jun 1 2006, 00:30


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
TamTam
сообщение Jun 1 2006, 00:23
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 293
Регистрация: 14-03-06
Пользователь №: 15 254



Цитата(GetSmart @ Jun 1 2006, 04:12) *
Цитата
а вот как 2 реализовать.

#define STORE(cool.gif byte_write(127,cool.gif
или
#define STORE(a,cool.gif byte_write(a,cool.gif

тока зачем так?


подправил вопрос, нуно инвертировать значение байта
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jun 1 2006, 00:35
Сообщение #4


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Инвертировать где? В eeprom?

#define INVERT byte_write(127,~byte_read(127))
или
#define INVERT ~byte_read(127)


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
TamTam
сообщение Jun 1 2006, 00:43
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 293
Регистрация: 14-03-06
Пользователь №: 15 254



Цитата(GetSmart @ Jun 1 2006, 04:35) *
Инвертировать где? В eeprom?

#define INVERT byte_write(127,~byte_read(127))
или
#define INVERT ~byte_read(127)


в eeprom
Так то оно так только один момент,
если записано 01 то соответственно после выполнения строки
Код
#define INVERT byte_write(127,~byte_read(127))

мы получим FE а надо 00

на этом я и застрял
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jun 1 2006, 00:55
Сообщение #6


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата
мы получим FE а надо 00

на этом я и застрял

Ну прямо как ребёнок :-)

#define INVERT byte_write(127, byte_read(127) ^ 0x01)


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 1 2006, 00:58
Сообщение #7


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(TamTam @ Jun 1 2006, 03:43) *
мы получим FE а надо 00

Вот дилема..
ну сохраняйте не 0 и 1, а 0 и -1 (он же 0xFF) и все будет инвертироваться как надо.
Go to the top of the page
 
+Quote Post
TamTam
сообщение Jun 1 2006, 01:02
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 293
Регистрация: 14-03-06
Пользователь №: 15 254



Получилось вот так
Код
#define CHANGE_ALARM            byte_write(127, (byte_read(127)) ^ (1<<0));


но лично мне кажется что я перемудрил
Go to the top of the page
 
+Quote Post
ivstech
сообщение Jun 1 2006, 01:32
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 204
Регистрация: 5-01-06
Пользователь №: 12 860



Например, так
#define ALARM_W(ADDR, VAL) byte_write((ADDR),(VAL));
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jun 1 2006, 01:33
Сообщение #10


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата
но лично мне кажется что я перемудрил

Эт точно!
Лишняя точка с запятой в конце. Ну и пара скобок вокруг byte_read.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 13:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01428 секунд с 7
ELECTRONIX ©2004-2016