Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Engineer_Keen »

Попробовать поставить внешний монитор питания (есть даже маленькие в SOT-23 корпусе типа MAX803).
Или вбить значения в исходник намертво, без возможности их изменения кнопками, но это отстой :dont_know:
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение isx »

Engineer_Keen писал(а):Попробовать поставить внешний монитор питания
а это как поможет?
Engineer_Keen писал(а):без возможности их изменения кнопками, но это отстой
это да... Регулировка здесь обязательна...
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Engineer_Keen »

isx писал(а):а это как поможет?

EEPROM портится когда контроллер работает на пониженном напряжении (говорят что это из-за выполнения инструкций по случайным адресам). Такая возможность вроде как исключается, если включен внутренний BOD, который в эти моменты времени держит контроллер в ресете. Ну а раз при 0*С глючит и внутренний BOD (а глючит ли он у вас? включите проверьте!), то заместо него можно воткнуть внешний (у MAX803 диапазон от -40*С).
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение isx »

Тоесть вешать его нужно на ресет?
Из супервизоров в наличии у нас только MAX1232ESA, но у него напряжение срабатывания 4.6В, мне кажется многовато...
Есть под заказ, но чё то не понятно. Посмотрите пожалуйста, там 2 товара с ценой, один 86 другой 6 руб. в чём разница и который мне нужен? http://www.compel.ru/?s=MAX803
P.S. НЕ реклама!
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Gudd-Head »

isx писал(а):в чём разница

Производитель, напряжение срабатывание, температурный диапазон...
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Engineer_Keen »

Можно и 1232 поставить.
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение isx »

Странно... Такой большой ценовой разброс при таких маленьких различиях параметров...
Нашёл ещё TPS3510P в наличии, но с даташитом никак не разберусь..
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение vitalik_1984 »

isx писал(а):Странно... Такой большой ценовой разброс при таких маленьких различиях параметров...

Так в посмотрите минимальную партию то :))) нахрена вам 1500 штук ? В серию будете выпускать?
TPS3510P в наличии, но с даташитом никак не разберусь..
Он похоже вам не подойдёт. Больше похоже на защиту питания материнской платы – отслеживает сразу три напряжения. Если только вся схема питается от 12 вольт, то можно подать через резисторный делитель на ненужные ножки. А нужное напряжение мониторить.
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение isx »

По поводу партии. Звонил в контору и узнавал, первая стоит 116р. за штуку, а вторая 29р.. Почему так не знают, говорят производители разные. Заказал 3шт. по 29р. на следущей недели придут, посморим что за звери :)
По поводу TPS3510P. Верно, я и не подумал что надо будет вешать 12 (или сколько там порог) вольт, чтоб она из ресета вышла. У меня в схеме есть линия 12В, но всё же, по мне, это изврат какой-то :)))
service47
Прорезались зубы
Сообщения: 219
Зарегистрирован: Вт мар 12, 2013 16:05:45

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение service47 »

Atmel Studio 6 при компиляции выдает ошибку:
Error 1 expected ')' before numeric constant 19 13

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

#define F_CPU 8000000UL

#include <avr/interrupt.h>
#include <avr/io.h>
#include <util/delay.h>

#define KEY1UM PIND.2
#define KEY2UP PIND.3
#define KEY4IM PIND.6

void key_scan()
{
}

void kb_check()
{     
  key_scan((KEY1UM), 0); // Error 1 expected ')' before numeric constant
  key_scan((KEY2UP), 1); // Error 2 expected ')' before numeric constant
  key_scan((KEY4IM), 2); // Error 3 expected ')' before numeric constant
}

int main(void)
{
    while(1)
    {
    }
}
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

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

Сочувствую :(
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение a_skr »

Правильно выдает. Вызываете функцию key_scan с параметрами, а объявлена она без них.
service47
Прорезались зубы
Сообщения: 219
Зарегистрирован: Вт мар 12, 2013 16:05:45

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение service47 »

То же самое, ошибка не пропала.

Спойлер

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


#define F_CPU 8000000UL

#include <avr/interrupt.h>
#include <avr/io.h>
#include <util/delay.h>

#define KEY1UM PIND.2
#define KEY2UP PIND.3
#define KEY4IM PIND.6
#define NOTT 0
#define PRES 1
#define LEAV 2
#define HOLD 3

uint8_t key_state[5];
uint8_t key_count[5];
uint8_t kb_tmrU, kb_tmrI;
uint8_t wait_key_tmr = 0;
uint16_t wait_key_tmr2 = 0;

void key_scan(uint8_t key, uint8_t num) //функция определение клика и удержания
{
   if (key == 0) //кнопка нажата
   {
      if (key_count[num] < 255) key_count[num]++; //считаем время удержания
      else key_state[num] = HOLD; //0,28сек
   }
   else if (key_count[num] > 0 && key_state[num] != HOLD) key_count[num] --; //кнопка отжата, считаем время от последнего нажатия
   else key_count[num] = 0;
   if (key_count[num] == 0) key_state[num] = NOTT;
   else if (key_count[num] > 8) //интервал, после которого фиксируется однократное нажатие (с отпусканием)
   {
      if (key_state[num] == PRES && key == 1) key_state[num] = LEAV;
   }
   else if (key_count[num] > 4) //интервал, после которого фиксируется нажатие (10ms)
   {
      if (key_state[num] == NOTT) key_state[num] = PRES;
   }
}

void kb_check()
{     
  key_scan((KEY1UM),0); // Error 1 expected ')' before numeric constant
  key_scan((KEY2UP),1); // Error 2 expected ')' before numeric constant
  key_scan((KEY4IM),2); // Error 3 expected ')' before numeric constant
}

int main(void)
{
   
    while(1)
    {

    }
}
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение pyzhman »

Попробуйте так:

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

(KEY1UM,0)
Docendo discimus
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение a_skr »

#include <avr/interrupt.h>
#include <avr/io.h>
#include <util/delay.h>
AStudio не знает такого:
PIND.2
service47
Прорезались зубы
Сообщения: 219
Зарегистрирован: Вт мар 12, 2013 16:05:45

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение service47 »

pyzhman писал(а):Попробуйте так:

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

(KEY1UM,0)

То же самое.

Это под Atmel Studio 6, а как тогда если не PIND.2
там даже в строке вверху при выделении пина появляется :
#define PIND _SFR_IO8(0x09)
Последний раз редактировалось service47 Чт ноя 07, 2013 10:04:15, всего редактировалось 1 раз.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Gudd-Head »

service47 писал(а):То же самое, ошибка не пропала.

Есть много тем конкретно по языку С. Например, viewtopic.php?f=62&t=37190
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение a_skr »

//#define KEY1UM PIND.2
#define KEY1UM ((PIND & (1<<PD2)) ? 1 : 0)
service47
Прорезались зубы
Сообщения: 219
Зарегистрирован: Вт мар 12, 2013 16:05:45

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение service47 »

a_skr писал(а)://#define KEY1UM PIND.2
#define KEY1UM ((PIND & (1<<PD2)) ? 1 : 0)

Предыдущая ошибка пропала, но появилась эта ошибка в тех же местах:
Error 2 expected ')' before ';' token 44 21


Спойлер

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


#define F_CPU 8000000UL

#include <avr/interrupt.h>
#include <avr/io.h>
#include <util/delay.h>

#define KEY1UM ((PIND & (1<<PD2))
#define KEY2UP ((PIND & (1<<PD3))
#define KEY4IM ((PIND & (1<<PD6))
#define NOTT 0
#define PRES 1
#define LEAV 2
#define HOLD 3

uint8_t key_state[5];
uint8_t key_count[5];
uint8_t kb_tmrU, kb_tmrI;
uint8_t wait_key_tmr = 0;
uint16_t wait_key_tmr2 = 0;

void key_scan(uint8_t key, uint8_t num) //функция определение клика и удержания
{
   if (key == 0) //кнопка нажата
   {
      if (key_count[num] < 255) key_count[num]++; //считаем время удержания
      else key_state[num] = HOLD; //0,28сек
   }
   else if (key_count[num] > 0 && key_state[num] != HOLD) key_count[num] --; //кнопка отжата, считаем время от последнего нажатия
   else key_count[num] = 0;
   if (key_count[num] == 0) key_state[num] = NOTT;
   else if (key_count[num] > 8) //интервал, после которого фиксируется однократное нажатие (с отпусканием)
   {
      if (key_state[num] == PRES && key == 1) key_state[num] = LEAV;
   }
   else if (key_count[num] > 4) //интервал, после которого фиксируется нажатие (10ms)
   {
      if (key_state[num] == NOTT) key_state[num] = PRES;
   }
}

void kb_check()
{     
  key_scan(KEY1UM,0); // Error 1 expected ')' before numeric constant
  key_scan(KEY2UP,1); // Error 2 expected ')' before numeric constant
  key_scan(KEY4IM,2); // Error 3 expected ')' before numeric constant
}

int main(void)
{
   
    while(1)
    {

    }
}
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение a_skr »

Кол-во скобок посчитайте. ;) Открывающих и закрывающих.
Ответить

Вернуться в «Разные вопросы по МК»