roboforum.ru

Технический форум по робототехнике.

МикроКонтроллер AVR начинающим - общие вопросы

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение =DeaD= » 28 сен 2008, 18:14

Еще можно вот так:

int16_u abc = 54173;
char digit[6];
for(char c=0; c<6; c++){ digit[c]=abc%10; abc=abc/10; };

Добавлено спустя 39 секунд:
2avr123: Да, для последней abc%10 достаточно.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение Vooon » 28 сен 2008, 20:42

=DeaD= писал(а):int16_u abc = 54173;
char digit[6];
for(char c=0; c<6; c++){ digit[c]=abc%10; abc=abc/10; };


s/int16_u/int16_t/
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение Doniak » 28 сен 2008, 21:52

Vooon и =DeaD= спасиба, а немоглибы немного разжувать как происходит "разложение"?
п.с. В дальнейшем планирую получившиеся цыфры выводить на 7ми сегментные индикаторы.
Аватара пользователя
Doniak
 
Сообщения: 142
Зарегистрирован: 26 сен 2007, 08:25
Откуда: Krivoy Rog, ukraina
прог. языки: Си
ФИО: Коля

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение avr123.nm.ru » 28 сен 2008, 21:58

Doniak писал(а): как происходит "разложение" ?

"Си для микроконтроллера" - читайте и разбирайте что в строчках данного вам кода написано. Начинайте учиться.
http://avr123.nm.ru/05.htm
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение Doniak » 28 сен 2008, 22:18

avr123.nm.ru писал(а):
Doniak писал(а): как происходит "разложение" ?

"Си для микроконтроллера" - читайте и разбирайте что в строчках данного вам кода написано. Начинайте учиться.
http://avr123.nm.ru/05.htm

мне всеравно непонятна вот эта строчка
s/int16_u/int16_t/
что это int16_u поиск в хелпе CVAVR нечево недал начяло переменной
Аватара пользователя
Doniak
 
Сообщения: 142
Зарегистрирован: 26 сен 2007, 08:25
Откуда: Krivoy Rog, ukraina
прог. языки: Си
ФИО: Коля

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение blindman » 28 сен 2008, 22:28

Doniak писал(а):мне всеравно непонятна вот эта строчка
s/int16_u/int16_t/


Это значит поменять int16_u на int16_t

Господа, давайте прежде чем советовать код - проверять как он выполняется, или хотя бы вдумчиво его перечитывать. Два примера и оба нерабочие. В одном - char, который в большинстве случаев по умолчанию 8 бит signed , и присваивается значение 173 - что в нем в итоге окажется? И что выведет этот код? В другом - несуществующий тип. И если менять его как советуется на int16_t - опять те же грабли (54173 не влазит в int16_t).
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение Vooon » 28 сен 2008, 22:38

Для CVAVR, как правило, стоит флаг char == unsigned char, его устанавливает мастер начального кода.
А про инт правда ваша, для CV правильно s/int16_u/unsigned int/
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение Doniak » 28 сен 2008, 23:30

5 / 2 // даст 2

5 % 2 // даст 1

75 / 29 // даст 2

75 % 29 // даст 17

почему 75%29 даст 17 ведь остаток 586206897
Аватара пользователя
Doniak
 
Сообщения: 142
Зарегистрирован: 26 сен 2007, 08:25
Откуда: Krivoy Rog, ukraina
прог. языки: Си
ФИО: Коля

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение Montoya » 28 сен 2008, 23:32

75 - 29 * 2 скок будет?
Аватара пользователя
Montoya
 
Сообщения: 168
Зарегистрирован: 14 авг 2007, 15:16
Откуда: Ростов-на-Дону
прог. языки: C/C++
ФИО: Герасимов Иван

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение Doniak » 28 сен 2008, 23:46

опа понял как всё это работает, всем спасиба :)

Код: Выделить всёРазвернуть
int16_u abc = 54173;
char digit[6];
for(char c=0; c<6; c++){ digit[c]=abc%10; abc=abc/10; };


совет AVR123 дописать в курсе то что написал Montoya. :oops:
Аватара пользователя
Doniak
 
Сообщения: 142
Зарегистрирован: 26 сен 2007, 08:25
Откуда: Krivoy Rog, ukraina
прог. языки: Си
ФИО: Коля

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение avr123.nm.ru » 29 сен 2008, 08:57

Doniak писал(а):совет AVR123 дописать в курсе то что написал Montoya. :oops:

Боюсь школьная арифметика в курс не влезет !


Doniak писал(а): почему 75%29 даст 17 ведь остаток 586206897


точнее 0.586206897 Вопрос: от чего ? Ответ: от 29

0.586206897 * 29 = 17

в ШКОЛЕ надо было учить деление СТОЛБИКОМ а не калькулятором и понимать что такое число, что такое остаток от деления.

Это не про Си и не про МК ! вАААААще !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение =DeaD= » 29 сен 2008, 09:20

Doniak писал(а):почему 75%29 даст 17 ведь остаток 586206897

0.586206897 - это не остаток, это дробная часть от результата деления одного числа на другое.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение Doniak » 29 сен 2008, 09:22

avr123.nm.ru писал(а):
Doniak писал(а):совет AVR123 дописать в курсе то что написал Montoya. :oops:

Боюсь школьная арифметика в курс не влезет !

точнее 0.586206897 Вопрос: от чего ? Ответ: от 29

0.586206897 * 29 = 17

в ШКОЛЕ надо было учить деление СТОЛБИКОМ а не калькулятором и понимать что такое число, что такое остаток от деления.

Это не про Си и не про МК ! вАААААще !

я вот этого обяснения непонял, при чём тут твоя арифметика?
Код: Выделить всёРазвернуть
x  % y  // вычислить остаток от деления нацело

мне Montoya дал пример я и посоветовал тебе вставить этот пример в твой курс(для большей наглядности)
Аватара пользователя
Doniak
 
Сообщения: 142
Зарегистрирован: 26 сен 2007, 08:25
Откуда: Krivoy Rog, ukraina
прог. языки: Си
ФИО: Коля

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение avr123.nm.ru » 29 сен 2008, 09:42

0.586206897 - это и есть ОСТАТОК ! просто он выражен через делитель, т.е. делитель принят за единицу измерения остатка.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение Doniak » 29 сен 2008, 09:56

x % y значит можно обьяснить так? // добуток залишка двох чисел на знаменник
поскольку формулировку:
// вычислить остаток от деления нацело
я понимаю как просто найти остаток
Аватара пользователя
Doniak
 
Сообщения: 142
Зарегистрирован: 26 сен 2007, 08:25
Откуда: Krivoy Rog, ukraina
прог. языки: Си
ФИО: Коля

Пред.След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4