Переход от асма к си

Обсуждаем контроллеры компании Atmel.
Ответить
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

СЦБист писал(а): и где это чудо лежит ? не надо выдумывать
Ну вот же!
Как и следовало ожидать - "спыцылыст" ниасилил документацию.
я вам минимум дважды показывал ссылку на место, где описано все... читали? :facepalm:
Да не умеет он читать
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1337
Зарегистрирован: Сб июн 09, 2012 02:14:11
Откуда: ХАРЬКОВ

Сообщение СЦБист »

ARV писал(а):[qu]я вам минимум дважды показывал ссылку на место, где описано все... читали? :

я вообщето сижу в студии 4, а не в вижуане как вы.

так что вот мои функции.

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

void EEPROM_write(unsigned int uiAddress, uint64_t ucData)
{

int i;

for (i=0;i<8;i++)
 {
      while(EECR & (1<<EEWE)) ;

	  EEAR = uiAddress;

	  EEDR = (uint8_t)ucData;

	  EECR |= (1<<EEMWE);

      EECR |= (1<<EEWE);

	  ucData >>= 8;

	  uiAddress++;
}
}

uint64_t EEPROM_read(unsigned int uiAddress)
{

int i;

uint64_t ucData = 0;

uint64_t temp = 0;

for (i=0;i<8;i++)
{
      while(EECR & (1<<EEWE));

	  EEAR = uiAddress;

	  EECR |= (1<<EERE);

	  temp = EEDR;

	  temp <<= (8 * i);

	  ucData |= temp;

	  uiAddress++;
}
 
return ucData;
}
правда без оптимизации не хо.
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

СЦБист писал(а):я вообщето сижу в студии 4, а не в вижуане как вы
вы сидите в полном дерьме :twisted: , если НЕ ЧИТАЯ делаете выводы.
я ни одного дня "в вижуане" не работал, Студия 4.18 - это один из основных моих инструментов для хобби.

в общем, если вам на самом деле потребуется помощь - можете обращаться. а по личной инициативе вас вразумлять я более не стану - вам не надо, мне и подавно. :dont_know:
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Сообщение Vov123 »

Если ты не "чукча, который писатель" открой книжку http://www.knigisosklada.ru/images/book ... 882674.jpg
на стр.338 и будет тебе счастье.
Реклама
Эиком - электронные компоненты и радиодетали
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1337
Зарегистрирован: Сб июн 09, 2012 02:14:11
Откуда: ХАРЬКОВ

Сообщение СЦБист »

ARV там сидите наверное вы

че ш вам так трудно это все дается ?


думай головой

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

EEDR = ucData & 255;


или

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

EEDR = (uint8_t)ucData;
сечешь теперь что это одно и то-же
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

СЦБист писал(а):EEDR = ucData & 255;
или
EEDR = (uint8_t)ucData;
нормальные люди пишут EEDR = ucData;
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1337
Зарегистрирован: Сб июн 09, 2012 02:14:11
Откуда: ХАРЬКОВ

Сообщение СЦБист »

при преобразовании вниз необходимо явно приводить.


вы что не в курсе, что старшие байты отбрасываются ?
Вложения
Безымянный.JPG
(51.77 КБ) 304 скачивания
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

СЦБист писал(а):при преобразовании вниз необходимо явно приводить
вы что не в курсе, что старшие байты отбрасываются ?
господи, и это мне говорит человек, который похваляется, что на Си/С++ собаку съел! :shock:

интересно, по-вашему если вы напишите (uint8_t)ucData, у вас что произойдет? неужели младший байт отбросится?! или uint16_t каким-то чудесным образом сожмется до байта?!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1337
Зарегистрирован: Сб июн 09, 2012 02:14:11
Откуда: ХАРЬКОВ

Сообщение СЦБист »

вот кода перейдете на яву , она вам и ткнет носом .


в си и ++ это поблашка - которая может выйти боком.

это хорошо когда два типа хранят только положительные числа.

когда же хранят разные - вот тут вы и сядите на ............
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

во-первых, мне глубоко по барабану джава. и микроконтроллеры на ней не программируют.
во-вторых, есть знак или нет, при попытке запихнуть в переменную меньшей разрядности число большей разрядности Си всегда пихает младшие байты, и без вариантов. поэтому всякие приведения типов ничего изменить не могут в принципе, равно как и маскирование битовым AND.
именно поэтому можно просто присваивать без переподвыподвертов
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

СЦБист писал(а): так что вот мои функции.
...
правда без оптимизации не хо.
С оптимизацией тоже. Такое говно оптимизацией не отполировать. Похоже, ты не знаешь не только Си, но и ассемблера. Написать такое
temp <<= (8 * i);
можно только абсолютно не представляя во что оно развернется. Ты бы еще temp = temp*256*i написал.
Наверное, документация никак в руки не дается, хотя не представляю в чем сложность написать eeprom_read_block((void*)&res, address, sizeof(res));
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Сб сен 17, 2016 18:56:30

Сообщение dimmer »

А у вас тут весело. Анекдоты отдыхают.
Ответить

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