Програмирование pic на СИ.

Поклонники продукции Microchip Technology Inc тусуются тут.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Програмирование pic на СИ.

Сообщение dosikus »

misterkuk писал(а):unsigned long tmp
tmp=13/8 ( кк примеру)
.....
Не хочит считать и все.


Это кто то не хочет думать .
Компилятор такую запись оптимизирует , и если далее с tmp никаких действий не будет, тупо выкинет.

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

unsigned long a,b, tmp
a=13;
b=8;
tmp=a/b;


Теперь считает ?
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение misterkuk »

dosikus писал(а):

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

unsigned long a,b, tmp
a=13;
b=8;
tmp=a/b;


Теперь считает ?

ээээ та каакбы не очень. tmp=1.
Считает но выводит не то что нужно. Может нужно не unsigned long? чтоб числа с запятой выводило. или почему тогда так?
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение urry »

правильно,1.
unsigned long - это целое.
Ну Вам же книжечку давали по хайтеку в ссылке - там с плавающей запятой- float или double.
Какой смысл Вам писАть, если Вы не читаете ?
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение misterkuk »

urry писал(а):правильно,1.
unsigned long - это целое.
Ну Вам же книжечку давали по хайтеку в ссылке - там с плавающей запятой- float или double.
Какой смысл Вам писАть, если Вы не читаете ?

НЕ НЕ НЕ.:) я то прочитал, но понял ли я. Я не пойму как пользоватся double. Если double tmp; то пишет ошибку. Как и ним обращатся?
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Програмирование pic на СИ.

Сообщение dosikus »

Ик...
Как все запущенно .
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение Аlex »

Мдя.......

Я вот тут... ммм.. делаю..... но у меня ничё не работает, помогите!!!!! ААААААААААААААААААА.............
misterkuk, скажите что я делаю не так ?
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение misterkuk »

Аlex писал(а):Мдя.......

Я вот тут... ммм.. делаю..... но у меня ничё не работает, помогите!!!!! ААААААААААААААААААА.............
misterkuk, скажите что я делаю не так ?

Впринципе я хочу чтоб вы мне помогли решыть программой арифметику которую я выкладывал 2 раза выше. Как я понял нудно использовать double. Но при компиляции пишет ошибку. я не пойму как ей пользоватся, почему ошибка и как работать с формулой что в документе что джавали и вообще. Я только знаю что double, а что с ней делать? ...
В принципе написал то что писал уже:)
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение Аlex »

Но при компиляции пишет ошибку.
Я вот сейчас включаю телевизор, а он не показывает.
Отгадай с одного раза - в чём проблема ?
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Програмирование pic на СИ.

Сообщение dosikus »

Куды выводим ?

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

unsigned long a,b
float tmp
a=13;
b=8;
tmp=(float)a/b;
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение misterkuk »

dosikus писал(а):Куды выводим ?

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

unsigned long a,b
float tmp
a=13;
b=8;
tmp=(float)a/b;

Умножаем на 60 и выводим на 4 индикатора число. Затея такая
используя % разбиваю на разряды. В ТМП уже будет число с точкой ? после tmp=(float)a/b;?
Пишет ошибки на строчки tmp %=10000; и подобные
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Програмирование pic на СИ.

Сообщение dosikus »

misterkuk

Не проще рассказать , что это за секретный девайс - в котором 100% не нужны манипуляции с плавающей запятой.
В двух словах - что снимаем , и что надо выводить .
Подозреваю - работа с АЦП

Ваше телодвижение с остатком понятны, вы пытаетесь изобразить ITOA .
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение misterkuk »

ITOA -в первые таккое слышу даже . 5 пост на 9 странице. я и код вылажывал.
Повторюсь.
Кварц 20 мегагерц. 1 машинный циккл за 200 наносекунт это 10 в -9 степени или 0.0000002 секунды.
Алгоритм такой- Считаем время как сигнал упал в 0 до того как он снова упал в ноль, обнуляем таймер1 и считаем заново до следующего падения в 0. С тем что посчитали работаем.
Так как 1 цикл 200 наносекунд то то количество циклов что подсчитали умножаем на время 200 наносекунд.
знаем время периуда. Формуля 1\Т . Переводим то что помножили в секунды для этого нужно разделить на миллиард.
Делим на то что вышло 1. получаем частоту.
Просто инт использую.
Какбы выходит частотомер но хочу сделать тахометр. сигнал с датчика коленвала.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Програмирование pic на СИ.

Сообщение dosikus »

misterkuk писал(а):ITOA -в первые таккое слышу даже .

У вас все еще впереди ...
Integer To Ansi - целое в строку символов.
misterkuk писал(а):Повторюсь.
Так как 1 цикл 200 наносекунд то то количество циклов что подсчитали умножаем на время 200 наносекунд.
знаем время периуда.


То есть вы так уверены , что в прерывании четко подсчитываете маш.циклы ? Так наплевать что и команды и уход в прерывание и возврат да и само прерывание всяко не равны одному циклу ??????
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение misterkuk »

dosikus писал(а):То есть вы так уверены , что в прерывании четко подсчитываете маш.циклы ? Так наплевать что и команды и уход в прерывание и возврат да и само прерывание всяко не равны одному циклу ??????

я знаю что не чётко, но это мизер который не повлияет на выводимый результат. Но сас это не важно а важно то что я немогу сделать чтоб программа считала арифметику.
Chettuser

Re: Програмирование pic на СИ.

Сообщение Chettuser »

Всего то осталось как объявить temp типом float в описании переменных.
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение misterkuk »

В смысле float tmp;?
Ругается только на выделеное
num10000=tmp/10000;
tmp %=10000;
num1000=tmp/1000;
tmp %=1000;
num100=tmp/100;
tmp %=100;
num10=tmp/10;
num1=tmp%10;
Error[205] C:\Program Files\Microchip\project\proba\proba.c 93 : integral type required
Chettuser

Re: Програмирование pic на СИ.

Сообщение Chettuser »

У меня вопрос - а компилятор поддерживает %?
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Програмирование pic на СИ.

Сообщение dosikus »

misterkuk писал(а):Error[205] C:\Program Files\Microchip\project\proba\proba.c 93 : integral type required


Ну так кликните по этой строке , перейдете на строку 93 . Ее здесь и вставьте .
Что гадать то ...
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение misterkuk »

Chettuser писал(а):У меня вопрос - а компилятор поддерживает %?

ну да. Работалож. Тока работало с целыми числами.
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение misterkuk »

dosikus писал(а):
misterkuk писал(а):Error[205] C:\Program Files\Microchip\project\proba\proba.c 93 : integral type required


Ну так кликните по этой строке , перейдете на строку 93 . Ее здесь и вставьте .
Что гадать то ...

Яж вставлял. пару постов выше . Подобные ошибки пишет на строки

tmp %=10000;

tmp %=1000;

tmp %=100;
Несколько подобных ошибок которые показуют на эти строчки
Ответить

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