Например TDA7294

Форум РадиоКот • Просмотр темы - Програмирование pic на СИ.
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб авг 23, 2025 20:22:03

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 1364 ]     ... , , , 32, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср мар 11, 2015 08:08:08 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4570
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Цитата:
как выставляется частота работы микропроцессора?
Она никак не выставляется, она определяется тактовым генератором, который может бить внутренним или внешним.
Читайте даташит, раздел осцилятора.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср мар 11, 2015 10:15:36 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 1
Рейтинг сообщений: 12
Зарегистрирован: Пт сен 02, 2011 09:14:44
Сообщений: 164
Рейтинг сообщения: 0
Аlex писал(а):
Она никак не выставляется

Ну приехали. А как компилятор будет определять на какой частоте работает контроллер? Например если использовать __delay


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср мар 11, 2015 10:28:39 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
А причём здесь компилятор??? Для delay есть свой дефайн... для симулятора - свои уставки частоты... но к самому МК это никакого отношения не имеет...

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср мар 11, 2015 11:10:33 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 1
Рейтинг сообщений: 12
Зарегистрирован: Пт сен 02, 2011 09:14:44
Сообщений: 164
Рейтинг сообщения: 0
Ну тогда изначально вопрос некорректно был задан и каждый его истолковал по-своему. Выше я указал как раз для delay, а в Протеусе в свойствах контроллера задается. Или же конфигом в самой программе если это внутренний генератор и тогда на него симулятор уже не влияет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср мар 11, 2015 11:56:35 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
Всё намного интереснее... В новых чипах можно менять частоту МК... PLL, например... Какие частоты для delay закладывать изначально... если частота может меняться??? Всё ложится на плечи программиста... и никак иначе...

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср мар 11, 2015 12:08:22 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4570
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Bkmz писал(а):
Ну тогда изначально вопрос некорректно был задан и каждый его истолковал по-своему

С этим на форумах постоянно и сталкиваешься. Человек бездумно забегает на форум, спрашивает какую-нибудь херню и убегает, думая что тут все экстрасенсы.
Мало того, большинство даже не понимают что спрашивают. Главное - спросить :)
Килять давно пора в мусорку подобные вопросы, да жалко уставы этого не позволяют. Дабы человек понял, что хуйню спросил.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Сб мар 14, 2015 15:35:01 
Встал на лапы

Зарегистрирован: Вс окт 11, 2009 09:54:59
Сообщений: 125
Откуда: Пенза
Рейтинг сообщения: 0
Всем привет :)
может кто спасет мой моск.
Значит написан код на Си :общение с датчиком ds18b20 и вывод на 7сегментный индикатор.
Проблема:при первом включении измеряется температура и выводится на индикатор.Но ! замер и вывод у меня в главном цикле -при изменении значения температуры показания не меняются. :( опытным путем установлено шо замер (принятие данных от датчика) происходит лишь один раз..как будто датчик потом умирает.
симулю в proteus 7.6
коды на С в файле.


В две головы думаем -и никак не справимся с этой бедой

p s компилятор Hi tech 9.6

p p s сам нашел косяк. :)
по коду было State =0 delay 480
а надо State =0 Pin =0 delay 480


Вложения:
Project.rar [19.74 KiB]
Скачиваний: 163

_________________
Интересная,однако,штука
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Чт апр 02, 2015 22:10:52 
Встал на лапы
Аватар пользователя

Зарегистрирован: Сб апр 03, 2010 19:30:17
Сообщений: 92
Откуда: СПб
Рейтинг сообщения: 0
Коты! Почему оно не работает?
Прогоняется один раз внутренний цикл, и усё, молчит.
Компилируется всё хорошо.
Спасите, не могу управлять выводом инфы на светодиодную матрицу.
Спасибо!

for (xx==0; xx<10; xx++)
{


for (counter == 1; counter < 6; counter++)
{
if (counter == 0) truecount = 1;
...
if (counter == 5) truecount = 32;

PORTA = truecount;
PORTB = column_array[counter+1];

delay_ms(20);

};


};


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Пт апр 03, 2015 06:13:55 
Опытный кот
Аватар пользователя

Карма: 9
Рейтинг сообщений: 61
Зарегистрирован: Пт ноя 16, 2007 11:21:37
Сообщений: 830
Рейтинг сообщения: 0
Потому что хх==0 и х=0, далеко не одно и тоже. Обьяснять почему?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Пт апр 03, 2015 07:58:20 
Опытный кот
Аватар пользователя

Карма: 7
Рейтинг сообщений: 92
Зарегистрирован: Сб июн 01, 2013 22:24:21
Сообщений: 765
Откуда: ПФО
Рейтинг сообщения: 0
money21 писал(а):
Коты! Почему оно не работает?
Прогоняется один раз внутренний цикл, и усё, молчит.

Вот смотри, так написано у тебя for (xx==0; xx<10; xx++), а так надо for (xx=0; xx<10; xx++), называется найди отличие :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Пт апр 03, 2015 15:07:27 
Встал на лапы
Аватар пользователя

Зарегистрирован: Сб апр 03, 2010 19:30:17
Сообщений: 92
Откуда: СПб
Рейтинг сообщения: 0
спасибо, узрел!
тогда ещё вопрос: задумка у меня такая - часы-бегущая строка на матрице 5х7 и PIC16F628 в размере наручных (не спрашивайте, зачем))
сейчас RA0-RA4 и RB0-RB6 заняты матрицей, RB7 - кнопкой. TMR0 дёргается для прерываний, по которым заполняется матрица.
программа выглядит примерно так:
Спойлерvoid updateled() {
один "прогон" матрицы с данными из массива.
}

void roll() {
изменение ячеек массива ("кадры")
delay_ms(10);
updateled();
}

void interrupt() {
cnt++; // Increment value of cnt on every interrupt
if (Button(&PORTB, 7, 1, 1)) {
roll();};
TMR0 = 96;
INTCON = 0x20; // Set T0IE, clear T0IF
}

void main() {

(инициализация)

do { } while(1);
}


и вроде бы всё ничего, жмёшь - показывает. но вот вопрос - на чём, собсно, организовать счёт времени? тактировать TMR1 кварцем на RB6 нет возможности - он занят.
что делать? спасибо!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Пт апр 03, 2015 15:26:29 
Друг Кота
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1859
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4119
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
money21 писал(а):
что делать?

Как правило, вначале "прикидывают" схему думая о том как будет написана программа и т.д. и только после этого пишется программа.
В вашем случае - делайте счёт времени по TIMER2 или убирайте кварц и "переходите" на INTRC. Освободятся RA6 и RA7. Дальше, думайте как освободить RB6 и RB7.

P.S.
money21 писал(а):
в размере наручных

Хочется верить что вы читали документацию.
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Пт апр 10, 2015 22:51:42 
Встал на лапы
Аватар пользователя

Зарегистрирован: Сб апр 03, 2010 19:30:17
Сообщений: 92
Откуда: СПб
Рейтинг сообщения: 0
Пикоты! помогите( решил переделать считалку от mikroel под кухонный таймер. всё работает отлично, кроме следующего - по достижении 0 минут (да, я знаю, что в минуте не 1000мс)) не появляется 1 на А2. и на А6 не появляется (TRISА менял), и вообще именно эта строка не работает.

Подскажите, будьте добры.
Спасибо!

Спойлер#include "Display_utils.h"
#define buzzerpin PORTA.F2


unsigned short digit_no, digit10, digit1, digit, i,minutes, start, m;

void scanbuttons() {
если кнопка нажата, изменять minutes
}

void count() {
for (i = minutes; i<=minutes; i--) {
digit = i % 10u;
digit1 = mask(digit); // считать от числа минут до 0
digit = (char)(i / 10u) % 10u;
digit10 = mask(digit);
if (i == 0) { // пикнуть, когда время выйдет
buzzerpin = 1; //этого не происходит
Delay_ms(5000);
buzzerpin = 0;
minutes = 55; //это происходит
}

Delay_ms(1000);


}
}


void interrupt() {
обновление 7сегментных индикаторов
}

void main() {
minutes = 0;

OPTION_REG = 0x80; // Timer0 settings
TMR0 = 0;
INTCON = 0xA0;
PORTA = 0;
TRISA = 0b10110000;
PORTB = 0;
TRISB = 0;
do {

digit = minutes % 10u;
digit1 = mask(digit); // prepare ones digit
digit = (char)(minutes / 10u) % 10u;
digit10 = mask(digit); // prepare tens digit
scanbuttons();
Delay_ms(400);
if (Button(&PORTA, 7, 1, 1)) {count();} //при нажатии кнопки "старт" - начать отсчёт
}

while (1);
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Вс апр 12, 2015 22:48:44 
Родился

Зарегистрирован: Сб мар 28, 2015 23:06:05
Сообщений: 12
Рейтинг сообщения: 0
Доброго времени суток!
money21 писал(а):
не появляется 1 на А2. и на А6 не появляется (TRISА менял), и вообще именно эта строка не работает.
#define buzzerpin PORTA.F2
- в этой строке нет опечатки?
попробуйте #define buzzerpin RA2 или static volatile bit buzzerpin @ (unsigned)&PORTA*8+2; , если у вас конечно компилятор С.
помните - нумерация портов начинается с 0


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Чт апр 16, 2015 07:40:41 
Встал на лапы

Зарегистрирован: Чт мар 05, 2015 07:14:58
Сообщений: 131
Рейтинг сообщения: 0
Всем привет!
Прошу помочь решить простую задачку:
по определённому событию, например по нажатию кнопки - должен загораться светодиод и в случае если кнопка не была нажата повторно в течении 1 сек - светодиод должен погаснуть. Как это реализовать? Нужно ли использовать для этого таймер? или можно без него обойтись? Как правильнее?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Чт апр 16, 2015 07:44:45 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4570
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
viewtopic.php?f=61&t=79801
Там есть примеры.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Чт апр 16, 2015 08:35:40 
Встал на лапы

Зарегистрирован: Чт мар 05, 2015 07:14:58
Сообщений: 131
Рейтинг сообщения: 0
По указанной ссылке нет ответа на мой вопрос. Самому приходит на ум такой алгоритм:
1) настраиваем прерывание по переполнению таймера на 1 сек.
2) В основном цикле программы делаем проверку: если кнопка нажата - обнуляем счётчик таймера и поднимаем флаг события.
Если флаг события поднят - светодиод горит, иначе - не горит.
3) В обработчике прерываний: опускаем флаг события.

Как ещё можно реализовать?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Чт апр 16, 2015 08:40:38 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4570
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Dmitry888 писал(а):
По указанной ссылке нет ответа на мой вопрос.
Всё есть, Вы просто не дочитали.
viewtopic.php?p=1470598#p1470598
Опрос выводов кнопок идёт в "фоновом режиме" (в прерывании таймера). По этому, "узнать" была ли нажата кнопка, можно хоть через секунду.
Останется только сделать задержку в основном цикле любым удобным для вас способом, и после неё проверить была ли кнопка нажата.
Там же, в примере, имеются миллисекундные вызовы таймера, в которых можно отсчитывать любые временные интервалы.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Чт апр 16, 2015 08:44:44 
Встал на лапы

Зарегистрирован: Чт мар 05, 2015 07:14:58
Сообщений: 131
Рейтинг сообщения: 0
прошу прощения, про кнопку - это я неправильный пример привёл. Меняем условия задачи: событие, которое мы отслеживаем, пусть будет : пришло определённое сообщение по uart.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Чт апр 16, 2015 08:50:22 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4570
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Ну тогда не понятно в чём заключается проблема.
Пришло сообщение - задерживаем программу на 1 сек (повторюсь - любым удобным для Вас способом !) - смотрим не приходило ли оно ещё раз.
Приём по УАРТу в буфер реализуем по прерываниям, чтобы не вешать программу попросту. Оценивать (парсить) буфер можно уже в основном цикле, процесс не из долгих.

ЗЫ: Ну а вообще, реализация будет зависеть от текущей структуры Вашей программы. Каждый пишет по-своему. И лучше/хуже - вопрос относительный. Как удобнее, так и лучше.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 1364 ]     ... , , , 32, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y