Например TDA7294

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

Текущее время: Ср июл 30, 2025 23:40:36

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


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



Начать новую тему Ответить на тему  [ Сообщений: 1363 ]    , , 3, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср фев 02, 2011 00:40:43 
Опытный кот

Карма: 4
Рейтинг сообщений: 1
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Сообщений: 767
Рейтинг сообщения: 0
ну так и должно быть
при нажатии на кнопку загориться 1 сегмент
чтобы загорелись все сегменты нужно написать не PORTB = 1; а PORTB = 0xff; или PORTB = 0b11111111
чтобы при отпускании кнопки сегменты потухли нужно написать
if (RA0 == 1) PORTB = 0xff; //если на линии RA0 присутсвует 1,значит включаем все сегменты
else PORTB = 0; //иначе все выключаем
см. предыдущий листинг


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср фев 02, 2011 01:03:32 
Мучитель микросхем

Карма: 3
Рейтинг сообщений: 0
Зарегистрирован: Сб апр 17, 2010 10:30:13
Сообщений: 400
Рейтинг сообщения: 0
vovik15 писал(а):
ну так и должно быть
при нажатии на кнопку загориться 1 сегмент
чтобы загорелись все сегменты нужно написать не PORTB = 1; а PORTB = 0xff; или PORTB = 0b11111111
чтобы при отпускании кнопки сегменты потухли нужно написать
if (RA0 == 1) PORTB = 0xff; //если на линии RA0 присутсвует 1,значит включаем все сегменты
else PORTB = 0; //иначе все выключаем
см. предыдущий листинг

бббррррр.:) терь при отжатии гаснет. Здорово. Но почемуто ггорит 1 сегмент. Хоть и указую порт б а не какойта 1 из выводов Код ниже.
.
Код:
   
     
void podgot (void); // подготовка МК
void main (void)
{
podgot();
while (1)
{
if (RA2 == 0) PORTB = 1;
else PORTB = 0;
}
} //конец функции;
// === подготовка МК

void podgot (void)
{
TRISA = 0b11111111; // направление работы ножек порта А
TRISB = 0b00000000; // направление работы ножек порта В
CMCON = 0x07; // отключение компараторов
PORTA = 0; // очищаем порт А
PORTB = 0; // очищаем порт Б
RBPU = 1;  // подтягивающие R (0-вкл, 1-выкл)
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср фев 02, 2011 01:07:49 
Опытный кот

Карма: 4
Рейтинг сообщений: 1
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Сообщений: 767
Рейтинг сообщения: 0
потому что 1 это 00000001 одно и тоже
из этого следует ,что 1 прописываеться только в PORTB0 а на всех остальных линиях порта нолики :)
надо написать так PORTB = 0b11111111; или PORTB = 0xff; или PORTB = 255; это одно и тоже в разнвы системах счисления


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср фев 02, 2011 01:11:24 
Мучитель микросхем

Карма: 3
Рейтинг сообщений: 0
Зарегистрирован: Сб апр 17, 2010 10:30:13
Сообщений: 400
Рейтинг сообщения: 0
vovik15 писал(а):
потому что 1 это 00000001 одно и тоже
из этого следует ,что 1 прописываеться только в PORTB0 а на всех остальных линиях порта нолики :)
надо написать так PORTB = 0b11111111; или PORTB = 0xff; или PORTB = 255; это одно и тоже в разнвы системах счисления

УУУРРРАААА:) :)) Работает. Век живи, век учись. Терь переходим к более сложному:)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср фев 02, 2011 12:31:02 
Мучитель микросхем

Карма: 3
Рейтинг сообщений: 0
Зарегистрирован: Сб апр 17, 2010 10:30:13
Сообщений: 400
Рейтинг сообщения: 0
Проверил на железе. Всё чётко работает. И сразу вопрос. Как организовать "кнопка в режиме переключателя" как это в самоучителе асембрера на лабките? И в еепром можно заносить только 1 бит? или 0-255. Так как там указуется адрес, тоесть ячейка энергонезависимой памяти размером 1 байт или 8бит. А если мне нужно поместить число больше 255? к примеру 500. то кактут обстоят дела?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср фев 02, 2011 14:57:02 
Опытный кот

Карма: 4
Рейтинг сообщений: 1
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Сообщений: 767
Рейтинг сообщения: 0
спросите в этой ветке ,вам обязательно ответят . :) (я просто там больше времени провожу)
http://labkit.ru/forum/index.php?s=d882 ... howforum=5


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср фев 02, 2011 18:00:37 
Мучитель микросхем

Карма: 3
Рейтинг сообщений: 0
Зарегистрирован: Сб апр 17, 2010 10:30:13
Сообщений: 400
Рейтинг сообщения: 0
vovik15 писал(а):
спросите в этой ветке ,вам обязательно ответят . :) (я просто там больше времени провожу)
http://labkit.ru/forum/index.php?s=d882 ... howforum=5

После 2 попыток зарегистрироваться письмо на почту так и не пришло.
_______________ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
В чём тут ошибка?
Хочу опрашивать 2 кнопки . И зажигать сегменты в соотвецтвии с нажатой кнопкой.
Код:
__CONFIG (LP & UNPROTECT & LVPDIS & BOREN & MCLRDIS & PWRTEN & WDTDIS);

void podgot (void); // подготовка МК
void podpr (void);
void main (void);
{
podgot();
while (1);
{
if (RA1 == 0);
PORTB = 0b11110000;
else         // иначе
podpr ();
}
} //конец функции
// === подготовка МК

void podgot (void)
{
TRISA = 0b11111111; // направление работы ножек порта А
TRISB = 0b00000000; // направление работы ножек порта В
CMCON = 0x07; // отключение компараторов
PORTA = 0; // очищаем порт А
PORTB = 0; // очищаем порт Б
RBPU = 1;  // подтягивающие R (0-вкл, 1-выкл)
}
void podpr (void)
{
if (RA2 == 0);
PORTB = 0b00001111;
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср фев 02, 2011 19:47:06 
Опытный кот

Карма: 4
Рейтинг сообщений: 1
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Сообщений: 767
Рейтинг сообщения: 0
ну сам прочитай свою программу. Что там написано? если нажата кнопка в порт оправляем число
ИНАЧЕ (тоесть если она не нажата) смотрим нажата ли вторая? если да. то отправляем другое число. правильно?
в else за место вызова функции надо обнулить порт.

вот так надо

Код:
__CONFIG (LP & UNPROTECT & LVPDIS & BOREN & MCLRDIS & PWRTEN & WDTDIS);

void podgot (void); // подготовка МК
void podpr (void);
void main (void);
{
podgot();
while (1);
{
podpr (); //функция вызываеться постоянно
if (RA1 == 0);
PORTB = 0b11110000;
else   PORTB = 0;     

}
} //конец функции
// === подготовка МК

void podgot (void)
{
TRISA = 0b11111111; // направление работы ножек порта А
TRISB = 0b00000000; // направление работы ножек порта В
CMCON = 0x07; // отключение компараторов
PORTA = 0; // очищаем порт А
PORTB = 0; // очищаем порт Б
RBPU = 1;  // подтягивающие R (0-вкл, 1-выкл)
}
void podpr (void)
{
if (RA2 == 0);
PORTB = 0b00001111;
else PORTB = 0;
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср фев 02, 2011 20:49:42 
Мучитель микросхем

Карма: 3
Рейтинг сообщений: 0
Зарегистрирован: Сб апр 17, 2010 10:30:13
Сообщений: 400
Рейтинг сообщения: 0
vovik15 писал(а):
ну сам прочитай свою программу. Что там написано? если нажата кнопка в порт оправляем число
ИНАЧЕ (тоесть если она не нажата) смотрим нажата ли вторая? если да. то отправляем другое число. правильно?
в else за место вызова функции надо обнулить порт.

вот так надо


Внёс изменения. Не компилируется. выдаёт кучу ошибок. Ведь вроде всё правельно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср фев 02, 2011 21:30:56 
Опытный кот

Карма: 4
Рейтинг сообщений: 1
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Сообщений: 767
Рейтинг сообщения: 0
листинг давай


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср фев 02, 2011 22:22:10 
Мучитель микросхем

Карма: 3
Рейтинг сообщений: 0
Зарегистрирован: Сб апр 17, 2010 10:30:13
Сообщений: 400
Рейтинг сообщения: 0
vovik15 писал(а):
листинг давай

Это листинг?
Код:
Executing: "C:\Program Files\HI-TECH Software\PICC\9.50\BIN\PICC.EXE" -C -E"migal.cce" "migal.c" -O"migal.obj" -Zg9 -O -ASMLIST -Q -MPLAB -16F628A
Advisory[1207]   : some of the command line options you are using are now obsolete
Advisory[1208]   : use --help option or refer to the user manual for option details
Warning[176] C:\Program Files\Microchip\project\migal\migal.c 37 : missing newline
Error[285] C:\Program Files\Microchip\project\migal\migal.c 10 : no identifier in declaration
Warning[374] C:\Program Files\Microchip\project\migal\migal.c 10 : missing basic type; int assumed
Error[314] C:\Program Files\Microchip\project\migal\migal.c 10 : ";" expected
Error[285] C:\Program Files\Microchip\project\migal\migal.c 12 : no identifier in declaration
Warning[374] C:\Program Files\Microchip\project\migal\migal.c 12 : missing basic type; int assumed
Error[314] C:\Program Files\Microchip\project\migal\migal.c 12 : ";" expected
Error[285] C:\Program Files\Microchip\project\migal\migal.c 13 : no identifier in declaration
Warning[374] C:\Program Files\Microchip\project\migal\migal.c 13 : missing basic type; int assumed
Error[314] C:\Program Files\Microchip\project\migal\migal.c 13 : ";" expected
Error[285] C:\Program Files\Microchip\project\migal\migal.c 15 : no identifier in declaration
Warning[374] C:\Program Files\Microchip\project\migal\migal.c 15 : missing basic type; int assumed
Error[314] C:\Program Files\Microchip\project\migal\migal.c 15 : ";" expected
Warning[374] C:\Program Files\Microchip\project\migal\migal.c 16 : missing basic type; int assumed
Error[983] C:\Program Files\Microchip\project\migal\migal.c 16 : storage class redeclared
Error[984] C:\Program Files\Microchip\project\migal\migal.c 16 : type redeclared
Error[239] C:\Program Files\Microchip\project\migal\migal.c 16 : identifier "PORTB" redefined (from line 23)
Error[285] C:\Program Files\Microchip\project\migal\migal.c 17 : no identifier in declaration
Warning[374] C:\Program Files\Microchip\project\migal\migal.c 17 : missing basic type; int assumed
Error[314] C:\Program Files\Microchip\project\migal\migal.c 17 : ";" expected
Error[285] C:\Program Files\Microchip\project\migal\migal.c 19 : no identifier in declaration
Warning[374] C:\Program Files\Microchip\project\migal\migal.c 19 : missing basic type; int assumed
Error[314] C:\Program Files\Microchip\project\migal\migal.c 19 : ";" expected
Error[285] C:\Program Files\Microchip\project\migal\migal.c 20 : no identifier in declaration
Warning[374] C:\Program Files\Microchip\project\migal\migal.c 20 : missing basic type; int assumed
Error[314] C:\Program Files\Microchip\project\migal\migal.c 20 : ";" expected
Error[248] C:\Program Files\Microchip\project\migal\migal.c 36 : inappropriate "else"
Warning[337] C:\Program Files\Microchip\project\migal\migal.c 36 : line does not have a newline on the end
Halting build on first failure as requested.
BUILD FAILED: Wed Feb 02 21:21:38 2011


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

Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4568
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Цитата:
void main (void);
{
Нафига тут ; ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Чт фев 03, 2011 00:06:56 
Мучитель микросхем

Карма: 3
Рейтинг сообщений: 0
Зарегистрирован: Сб апр 17, 2010 10:30:13
Сообщений: 400
Рейтинг сообщения: 0
Аlex писал(а):
Цитата:
void main (void);
{
Нафига тут ; ?

Точно. Но ошибки не пропали. Хотя и стало их меньше.
Код:
Executing: "C:\Program Files\HI-TECH Software\PICC\9.50\BIN\PICC.EXE" -C -E"migal.cce" "migal.c" -O"migal.obj" -Zg9 -O -ASMLIST -Q -MPLAB -16F628A
Advisory[1207]   : some of the command line options you are using are now obsolete
Advisory[1208]   : use --help option or refer to the user manual for option details
Warning[176] C:\Program Files\Microchip\project\migal\migal.c 38 : missing newline
Error[291] C:\Program Files\Microchip\project\migal\migal.c 9 : K&R identifier "podpr" not an argument
Warning[347] C:\Program Files\Microchip\project\migal\migal.c 9 : external declaration inside function
Error[314] C:\Program Files\Microchip\project\migal\migal.c 9 : ";" expected
Error[315] C:\Program Files\Microchip\project\migal\migal.c 12 : "{" expected
Error[248] C:\Program Files\Microchip\project\migal\migal.c 17 : inappropriate "else"
Error[237] C:\Program Files\Microchip\project\migal\migal.c 24 : function "podgot" redefined
Error[248] C:\Program Files\Microchip\project\migal\migal.c 36 : inappropriate "else"
Warning[337] C:\Program Files\Microchip\project\migal\migal.c 37 : line does not have a newline on the end
Halting build on first failure as requested.
BUILD FAILED: Wed Feb 02 23:06:42 2011


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Чт фев 03, 2011 00:49:59 
Опытный кот

Карма: 4
Рейтинг сообщений: 1
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Сообщений: 767
Рейтинг сообщения: 0
так,я разобрался с этой программой ,все работает четко. пол часа угробил :))
найди в сети информацию о том,как использовать маски в СИ . с их помощью сможеш решить свою задачу


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

Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4568
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Код:
if (RA1 == 0);
А здесь зачем ; ?
PS: Буду мучить по одной строчке :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Чт фев 03, 2011 09:55:10 
Мучитель микросхем

Карма: 3
Рейтинг сообщений: 0
Зарегистрирован: Сб апр 17, 2010 10:30:13
Сообщений: 400
Рейтинг сообщения: 0
vovik15 писал(а):
так,я разобрался с этой программой ,все работает четко. пол часа угробил :))
найди в сети информацию о том,как использовать маски в СИ . с их помощью сможеш решить свою задачу

Про маски не слова. Может про масивы?:)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Чт фев 03, 2011 10:58:16 
Опытный кот

Карма: 4
Рейтинг сообщений: 1
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Сообщений: 767
Рейтинг сообщения: 0
в том самоучителе про маски не написано. я говорю в сети посмотри
я говорю про |= &= ^=


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Чт фев 03, 2011 11:52:30 
Мучитель микросхем

Карма: 3
Рейтинг сообщений: 0
Зарегистрирован: Сб апр 17, 2010 10:30:13
Сообщений: 400
Рейтинг сообщения: 0
vovik15 писал(а):
в том самоучителе про маски не написано. я говорю в сети посмотри
я говорю про |= &= ^=

Подобное нашол только тут http://www.labkit.ru/html/C_for_PIC?id=405 даже Булеваую алгебру просмотрел. Но не пойму почему прогграмма не компилируется. Принцип то элементарный. Если ноль то одно, если единица то другое. А он указует ошибку на последню закрывающую фигурную скобку и говорит что там чтото не написано. Или на "Else" ругается. Может какието правила есть которых я не знаю, может при такой логике действий тут не допустимы эти операторы (if)?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Чт фев 03, 2011 12:02:42 
Опытный кот

Карма: 4
Рейтинг сообщений: 1
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Сообщений: 767
Рейтинг сообщения: 0
&=
при накладывании маски &= , в тех биах где в маске стоит 0 , биты исходного числа принамают значение 0, независимо от первоночального значения, в тех битах, где в маске стоит 1, исходное число не меняется

|=
при накладывании маски |=, в тех битах где в маске стоит 1, биты исходного числа принимают 1, независимо то первоначально значения. В тех битах, где в маске стоит 0, исходное значение не меняется


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Чт фев 03, 2011 12:14:15 
Мучитель микросхем

Карма: 3
Рейтинг сообщений: 0
Зарегистрирован: Сб апр 17, 2010 10:30:13
Сообщений: 400
Рейтинг сообщения: 0
vovik15 писал(а):
&=
при накладывании маски &= , в тех биах где в маске стоит 0 , биты исходного числа принамают значение 0, независимо от первоночального значения, в тех битах, где в маске стоит 1, исходное число не меняется

|=
при накладывании маски |=, в тех битах где в маске стоит 1, биты исходного числа принимают 1, независимо то первоначально значения. В тех битах, где в маске стоит 0, исходное значение не меняется

А можно элементарный пример?


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

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


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

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


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

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


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