26.08.2012, 01:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от papa_n
|
Я же не просто выложил проэкт, там есть все!! и прошивка тоже, да и я писал что проверяю это все на реальном кристале.
|
А это что (CV ver. 1.25.8 Pro)?
|
|
|
|
26.08.2012, 01:51
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от papa_n
|
Я же не просто выложил проэкт, там есть все!!
|
Ну, проверить-то нужно было - Вы же от такого количества новизны часто путаете, что обязательно нужно показать, а что можно и пропустить. Вот и пример, в качестве пояснения...
Два последовательных поста, в одном такой фрагмент:
Сообщение от papa_n
|
массив определен
Код:
|
volatile char data[]={0xB1,0x9A,0xFF,0x2B,0x79,0xEE,0x31,0x46,0x32,0x2 E,0x83,0xDD,0x1B,0x00,0x00,0x01,0x00};
....
... поскипано ... |
|
и тут же вот такой пост:
Сообщение от papa_n
|
Рано радовался(((
Ошибка в строке
Error: D:\Project_CV_encode\main.c(81): incomplete type is not allowed ?
|
В рамках текста, опубликованного непосредственно перед этим постом, такая ошибка невозможна, так как там массив с этим именем был не только полностью объявлен, но даже и проинициализирован. То есть, очевидно, что в тексте были сделаны существенные изменения, но текста-то как раз и нет! В общем, не удивляйтесь, когда требуют показать что там выше и ниже в программе - это неспроста.
__________________________________________________ __________________________
++
Сообщение от nonamedov
|
А это что (CV ver. 1.25.8 Pro)?
|
А это "особенности" CV. Я достал из запылённого zip'а старенький CV (1.25.3 Pro), так вот там есть такая ошибка, причём, она ещё и с вариациями.
__________________
There's always more than one way to skin a cat.
Последний раз редактировалось tempora; 26.08.2012 в 01:57.
|
|
|
|
26.08.2012, 12:39
|
|
Временная регистрация
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
У меня CV 2.03.4 Standard
|
|
|
|
26.08.2012, 13:19
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от papa_n
|
У меня CV 2.03.4 Standard
|
Пора на IAR переходить .
Лучше раньше ...
__________________
Осторожно , злой кот
|
|
|
|
26.08.2012, 14:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Точно, там компилится так же, но на это прямо указывает документация, поэтому там - это фича, а не бага! ![Рот до ушей](images/smilies/icon_doushei.gif) ( Ну, почти прямо.)
____________________________________________
++ К тому же, там всё " по-взрослому" - с разделением на сегменты, поэтому тот факт, что один массив (NOINIT) наехал на другой (INIT) обнаружился бы не сразу, а на некоей N-ой версии, что привнесло бы в разбирательство аромат престижа и дороговизны.
Прикалываюсь, я. Воскресенье же...
__________________
There's always more than one way to skin a cat.
Последний раз редактировалось tempora; 26.08.2012 в 14:47.
|
|
|
|
26.08.2012, 21:20
|
|
Заблокирован
Регистрация: 23.09.2007
Сообщений: 761
Сказал спасибо: 84
Сказали Спасибо 352 раз(а) в 151 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Что-то у меня чувство, что энкодер корректно работает только с массивом длиной кратной 3. И зачем там в последней строчке ещё раз index++?
|
|
|
|
26.08.2012, 23:30
|
|
Частый гость
Регистрация: 25.08.2012
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Есть вот такой код.
Цитата:
|
void spi_transmit (unsigned char data) //transmit byte to SD|MMC card
{ unsigned char i;
for (i=0;i‹8;i++)
{
if ((data&0x80)==0x00) PORTB&=~_BV(DI); //Set data bit
else PORTB|=_BV(DI);
data = data‹‹1;
PORTB|=_BV(CLK); //Strobe
asm("nop");
PORTB&=~_BV(CLK);
}
}
|
Почему при первом проходе пропускается строчка data = data‹‹1; при втором пропускается условие, переходит к оператору data = data‹‹1; после этого выполняется условие и переходит к оператору PORTB|=_BV(CLK); //Strobe а не всё последовательно?
|
|
|
|
27.08.2012, 00:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Какое-то сбивчивое описание. Условие может быть истинным или ложным, пропускаются или исполняются - операторы. Если удивляет порядок исполнения операторов, то, вероятно, это результат оптимизации.
__________________
There's always more than one way to skin a cat.
Последний раз редактировалось tempora; 27.08.2012 в 14:48.
|
|
|
|
27.08.2012, 10:03
|
|
Временная регистрация
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от kosmos440o
|
Что-то у меня чувство, что энкодер корректно работает только с массивом длиной кратной 3. И зачем там в последней строчке ещё раз index++?
|
Часть функции в коментах внизу, они то и преобразовывают еслли не кратное 3)
|
|
|
|
10.09.2012, 18:12
|
|
Временная регистрация
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
И снова здравствуйте!!
Интересует вопрос!?
Какие переменные в программе я могу менять из-вне? Например с помощью ком порта?
А то что то не могу найти ни одного нормального примера)
Спасибо!
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:01.
|
|