Нуждаюсь в помощи! прога для PIC16F628A

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
DeNew
Вымогатель припоя
Сообщения: 579
Зарегистрирован: Чт окт 19, 2006 13:19:04
Откуда: Зеленоград

Сообщение DeNew »

dosikus писал(а):
dosikus писал(а): Хотя можно без изменений в проге - вешать на вывод непосредственно обмотку реле , но релюху надо подбирать по току 20 mА максимум.
З.Ы. Кста у него есть одна бяка , он не иницилизирует глобальные переменные из за этого может быть масса проблем.
не такой рэлюхи нет, лучше через ключ, а вот то что проблем много, это точно проба пера.
Реклама
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

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

// --- ПЕРЕМЕННЫЕ --- //

unsigned char gSTATE;                       // Переменная состояния и ее значения
enum {ST_READY, ST_SLEEP, ST_ON, ST_SETUP, ST_START, ST_COUNT, \
      ST_SIGNAL, ST_USERSTOP};

unsigned char gLED_DIGITS[2];               // Отображаемые на индикаторе символы
unsigned char gLED_COUNTER;                 // Текущий разряд индикатора
unsigned char gBUTTONS;                     // Положение кнопок
unsigned char gMIN_D, gMIN_E, gSEC, gQUANT; // Время
unsigned char gCSTOP;                       // Счетчик (для останова пользователем)
int16 gCW;                                  // 16-битный счетчик
Переменные обьявлены но не иницилизированы .
Хотябы 0 в них забить , в реале при старте там мусор.
Это еще одна беда когда отлаженная прога в протеусе не работает в железе.
CCS для этого есть static ...
Есть еще #ZERO_RAM но эта директива обнуляет все регистры - минус долго работает.
Реклама
Аватара пользователя
DeNew
Вымогатель припоя
Сообщения: 579
Зарегистрирован: Чт окт 19, 2006 13:19:04
Откуда: Зеленоград

Сообщение DeNew »

dosikus писал(а):
Переменные обьявлены но не иницилизированы .
Хотябы 0 в них забить , в реале при старте там мусор.
Это еще одна беда когда отлаженная прога в протеусе не работает в железе.
CCS для этого есть static ...
Ах еслиб я чё понимал в этом :(
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Обьясняю на пальцах-
При старте микро ,регистры аппаратно не обнуляются и в них будет находится совсем не то что мы ожидаем .
Для этого нужно их иницилизировать- или обнулить или загонять то что нам надо по контексту.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
DeNew
Вымогатель припоя
Сообщения: 579
Зарегистрирован: Чт окт 19, 2006 13:19:04
Откуда: Зеленоград

Сообщение DeNew »

dosikus писал(а):Обьясняю на пальцах-
При старте микро ,регистры аппаратно не обнуляются и в них будет находится совсем не то что мы ожидаем .
Для этого нужно их иницилизировать- или обнулить или загонять то что нам надо по контексту.
Ага это я всё понял ГУД, но проблем в том, что я -то не смогу реализовать это програмно.
Реклама
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Вариант 1:

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

unsigned char gSTATE=0;                       // Переменная состояния и ее значения
Вариант 2:

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

static unsigned char gSTATE;                       // Переменная состояния и ее значения
Оба равнозначные.
static
Variable is globally active and initialized to 0. Only accessible from this compilation unit.
Переменная глобально активна и инициализирована к 0. Только доступный от этой единицы трансляции.
Реклама
Аватара пользователя
DeNew
Вымогатель припоя
Сообщения: 579
Зарегистрирован: Чт окт 19, 2006 13:19:04
Откуда: Зеленоград

Сообщение DeNew »

dosikus писал(а):Вариант 1:

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

unsigned char gSTATE=0;                       // Переменная состояния и ее значения
Вариант 2:

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

static unsigned char gSTATE;                       // Переменная состояния и ее значения
Оба равнозначные.
static
Variable is globally active and initialized to 0. Only accessible from this compilation unit.
Переменная глобально активна и инициализирована к 0. Только доступный от этой единицы трансляции.
Ага ясно, далее ещё что?
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Ну дык дальше по логике все переменные так же .

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

// --- ПЕРЕМЕННЫЕ --- //
static unsigned char gSTATE;                       // Переменная состояния и ее значения
enum {ST_READY, ST_SLEEP, ST_ON, ST_SETUP, ST_START, ST_COUNT, \
      ST_SIGNAL, ST_USERSTOP};

static unsigned char gLED_DIGITS[2];               // Отображаемые на индикаторе символы
static unsigned char gLED_COUNTER;                 // Текущий разряд индикатора
static unsigned char gBUTTONS;                     // Положение кнопок
static unsigned char gMIN_D, gMIN_E, gSEC, gQUANT; // Время
static unsigned char gCSTOP;                       // Счетчик (для останова пользователем)
static int16 gCW;                                  // 16-битный счетчик

Аватара пользователя
DeNew
Вымогатель припоя
Сообщения: 579
Зарегистрирован: Чт окт 19, 2006 13:19:04
Откуда: Зеленоград

Сообщение DeNew »

ведать я что-то не то сделал, релюха включается при подаче питания сразу.
Вложения
hometimer1.c
(16.91 КБ) 323 скачивания
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Надо посмотреть твою схему подключения .

Хорошо я попозже отлажу в проте и выложу .
Аватара пользователя
DeNew
Вымогатель припоя
Сообщения: 579
Зарегистрирован: Чт окт 19, 2006 13:19:04
Откуда: Зеленоград

Сообщение DeNew »

dosikus писал(а):Надо посмотреть твою схему подключения .
Вложения
Timer3.GIF
(28.49 КБ) 254 скачивания
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Тебе нужно чтобы при включении на RA4 был 0 или 1 ?
То есть у нас получается инверсно - 1 на RA4 реле выключено , 0 включено ?
А дальше при включении реле выключено , стартуем таймер реле включаем - время закончилось реле выключили ?
Аватара пользователя
DeNew
Вымогатель припоя
Сообщения: 579
Зарегистрирован: Чт окт 19, 2006 13:19:04
Откуда: Зеленоград

Сообщение DeNew »

dosikus писал(а):Тебе нужно чтобы при включении на RA4 был 0 или 1 ?
То есть у нас получается инверсно - 1 на RA4 реле выключено , 0 включено ?
А дальше при включении реле выключено , стартуем таймер реле включаем - время закончилось реле выключили ?
Включаем питание таймера, рэлюха молчит, нажимаем кнопки выставляем время, нажимаем СТАРТ, рэлюха ВКЛ, по истечению времени, рэлюха ВЫКЛ, короче бонально.

Коль у меня ключ стоит, на транзюк в любом случае надо лог1, по истечению времени лог0, кстати если ещё в этом таймере выкинуть нах засыпание таймера вообще чудесно будет.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Ну это понял.
А вот ключ у тебя открывается 0 или 1 ?
Если 1 - конденсатор надо выкинуть.
Аватара пользователя
DeNew
Вымогатель припоя
Сообщения: 579
Зарегистрирован: Чт окт 19, 2006 13:19:04
Откуда: Зеленоград

Сообщение DeNew »

dosikus писал(а):Ну это понял.
А вот ключ у тебя открывается 0 или 1 ?
Если 1 - конденсатор надо выкинуть.
от 1, выкину ОК.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Лови , тести...
Вложения
hometimer1.c
(16.46 КБ) 343 скачивания
Аватара пользователя
DeNew
Вымогатель припоя
Сообщения: 579
Зарегистрирован: Чт окт 19, 2006 13:19:04
Откуда: Зеленоград

Сообщение DeNew »

dosikus писал(а):Лови , тести...
Спасибо! Короче ситуация такая, что при подаче питания на схему, рэлюха клациет ВКЛ ВЫКЛ, а потом работа как мне и надо, вот только спасает кондёр чтоб не хлюпала рэле, при подаче питания.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Ну и оставь кондер.
Короче при включении на входе висит 1 .
Из за того что выход некоторое время в z состоянии, а при кондере
на нем 0 - зарядка .
Вложения
hometimer1_cr.png
(564 байт) 379 скачиваний
Аватара пользователя
DeNew
Вымогатель припоя
Сообщения: 579
Зарегистрирован: Чт окт 19, 2006 13:19:04
Откуда: Зеленоград

Сообщение DeNew »

dosikus писал(а):Ну и оставь кондер.
Короче при включении на входе висит 1 .
Из за того что выход некоторое время в z состоянии, а при кондере
на нем 0 - зарядка .
Блин проблем, если ставлю кондёр 4,7мкф, то так-же хлюпает рэле, если10мкф, то вообще рэле не запускается. Илог1 уже нет на выходе МК.
Последний раз редактировалось DeNew Пт авг 01, 2008 21:38:03, всего редактировалось 1 раз.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Резистор смени на 1ком
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»