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

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

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

Сообщение misterkuk »

Ну ладно:). Вопрос. Прочитал что есть команда перехода GOTO, но как ей пользоваться толком не написано.
К промеру:
_____ какойто текст програмы_______
if (ra1 == 0)
{
if (ra1==1)
porb = 255;
else
goto ( тут нада перейти на if которая после открытой фигурки. Но как?)
}
else
{
какоето действие
}
Cмысл в том что при нажатии у на кннопку у нас ra1 имеет на ноге нлу и програма уходит в первые фигурки где должна зациклится пока на ноге снова не появится влу. ( тоесть ждёт когда мы отожмём кнопку).
12val12
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

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

Сообщение 12val12 »

нафиг семисегментники проводов много толку мало.
лсд c spi самое то!.особенно для отладки
.если это не часы которые надо видеть с 3х метров
ух ты.... показывает
12val12
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

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

Сообщение 12val12 »

misterkuk
надо сделать метку
например
Label1:

if (A==B) { GOTO Label1 ; }
ух ты.... показывает
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

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

Cмысл в том что при нажатии у на кннопку у нас ra1 имеет на ноге нлу и програма уходит в первые фигурки где должна зациклится пока на ноге снова не появится влу.

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

if (!ra1)
{
  porb = 255;
  while(!ra1);
}
else
{
  какоето действие
}
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

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

Сообщение misterkuk »

Аlex
А можно подробней про логику вашего примера? И особенно интересует знак "!" перед ra.
Залез в учебник но там написано так как будто мы это уже знаем. Прошу объяснить на пальцах:)
_____
Хочу разобраться с константами и переменными.
Прочитав я понял что если переменная объявляется в функции, то после окончания функции она пропадает. Это насколько я понял локальная переменная. Что такое глобальная переменная я так нигде не нашол ( в одном учебнике говорилось что определение давалось в начале, прочитал 5 рас я это начало, так и не нашол). Осмелюсь предположить что ето переменная которая определяется до функции "MAIN" или после неё сразу и её можно передавать функциям и изменять функциями. Вот тут прошу внести ясность. Если не прав то как правильно, если не всё то прошу дополнить.
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

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

Сообщение vovik15 »

этот знак ! означает НЕ
!= НЕ равно
!> НЕ больше
!< не меньше
я незнаю где вы читали ,но вот сдесь все четко написано
http://www.labkit.ru/html/C_for_PIC?id=405
что касаеться типов данных ,написанно сдесь
http://www.labkit.ru/html/C_for_PIC?id=251
Глобальная переменная объявляеться вне функции ,и может быть использована другими функциями
локальная объявляеться внутри функции, и не может быть использована другими функциями
misterkuk
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13
Контактная информация:

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

Сообщение misterkuk »

vovik15 писал(а):этот знак ! означает НЕ
!= НЕ равно
!> НЕ больше
!< не меньше
я незнаю где вы читали ,но вот сдесь все четко написано
http://www.labkit.ru/html/C_for_PIC?id=405
что касаеться типов данных ,написанно сдесь
http://www.labkit.ru/html/C_for_PIC?id=251
Глобальная переменная объявляеться вне функции ,и может быть использована другими функциями
локальная объявляеться внутри функции, и не может быть использована другими функциями

Про просто восклицательный знак не написано:) . Только написано что | - не.
Ну эта палка на восклицание не очень схожа :)) .
Ну да ладно, это мелочь.
И всётаки как понимать?
(!RA) Тоесть НЕ ra. Что это даёт?
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

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

Сообщение vovik15 »

!RA0 говорит о том, что RA0 == 0
ut1wpr
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

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

Сообщение ut1wpr »

vovik15 писал(а):!> НЕ больше
!< не меньше

Таких условий в Си нет.
Не больше = МЕНЬШЕ
Не меньше = БОЛЬШЕ
Есть:
> больше
>= больше или равно
= равно
!= не равно
<= меньше или равно
< меньше
С уважением,
Виктор.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

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

Мой уютный бложик... заходите!
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

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

Сообщение vovik15 »

ut1wpr писал(а):
vovik15 писал(а):!> НЕ больше
!< не меньше

Таких условий в Си нет.
Не больше = МЕНЬШЕ
Не меньше = БОЛЬШЕ
Есть:
> больше
>= больше или равно
= равно
!= не равно
<= меньше или равно
< меньше

ну ошибся чуть чуть :) бывает
ut1wpr
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

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

Сообщение ut1wpr »

ARV писал(а):традация соблюдается и в этой теме :kill:
вопросы конкретно по языку Си вдруг приплетаются к PIC... по-моему, если кто-то не знает Си, так и разбираться надо с Си - контроллер тут совершенно ни при чем!
А что делать, если спрашивающий полный профан и в PIC-ах и в Си? :(
Вот и слились воедино... :)) :)
С уважением,
Виктор.
12val12
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

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

Сообщение 12val12 »

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

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

Сообщение ARV »

ut1wpr писал(а):А что делать, если спрашивающий полный профан и в PIC-ах и в Си? :(
Вот и слились воедино... :)) :)

что делать? вот что:
1. вопросы по Си отсылать в соответствующую тему про Си/С++
2. вопросы про конкретно PIC-и отсылать в тему про PIC-и
3. в одну кучу не мешать все.

интересно, а куда делись модераторы?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

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

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

Сообщение misterkuk »

Давайте не не будем. ARV , вы предлагаете в одной теме спрашивать одну часть вопроса а в другой другую, а потом бегать по веткам собирать всё в кучю. Это мусар и безобразие, тем более что вопросов по пик тут небыло вроде. Си учебники написаны для для написания программ для компьютера. Там не описаны моменты связаные с МК даже банальной настройки портов на ввод или вывод.
Данная тема является местом обсуждения языка си применимого для написания програм для Мк а не для компьютеров. Разница есть.
Си и си для пик разные вещи,- основа одна а специфика разная.
_____
Всётаки , можете дать материал где почитать про сопряжение лсд и мк и програмно ни си.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

когда задаются вопросы про то, что такое != или |= - это какое отношение к МК имеет? настройка порта МК заключается в использовании определенного оператора Си для записи в регистр определенного числа. То, как этот регистр называется и какое число туда писать - не имеет отношения к Си, и об этом надо говорить в теме про конкретный тип МК. то, какой оператор использовать и почему - не имеет отношения к МК, зато имеет отношение к Си - об этом надо говорить в теме про Си.

создается впечатление, что Си - это не кроссплатформенный язык, и его надо рассматривать только в связи с конкретной платформой в виде МК...


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

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

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

Сообщение misterkuk »

Здесь очень интересный опыт:) http://vrtp.ru/index.php?showtopic=10583&hl=
12val12
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

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

Сообщение 12val12 »

переписал частотомер чтобы не было переполнения таймера

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

freq=0;
 for (i=1;i<=100;i++)
{
   TMR1H=0;TMR1L=0;
   T1CON=0b00000111 ;// 00 = 1:1 Prescale value;;; 0 = Oscillator is shut off;;;  1 = Do not synchronize external clock input;;;;
    //1 = External clock from pin RB6/T1OSO/T1CKI/PGC (on the rising edge);; 1 = Enables Timer1
   __delay_ms(1);
    T1CON=0b00000110 ;// 0 = disable Timer1(lowers bit)
    freq=(long)TMR1H<<8+TMR1L +freq;
}
freq=freq*10;  //


я думаю точность будет 20 гц?
ух ты.... показывает
Аватара пользователя
testerplus
Встал на лапы
Сообщения: 130
Зарегистрирован: Пн авг 24, 2009 10:41:16
Откуда: SPb
Контактная информация:

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

Сообщение testerplus »

12val12 писал(а):

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

    freq=(long)TMR1H<<8+TMR1L +freq; 

В этом выражении ошибка (читайте о приоритетах операций)
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

testerplus писал(а):
12val12 писал(а):

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

    freq=(long)TMR1H<<8+TMR1L +freq; 

В этом выражении ошибка (читайте о приоритетах операций)

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

Мой уютный бложик... заходите!
Ответить

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