Страница 466 из 628

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

Добавлено: Ср окт 30, 2013 11:50:59
Engineer_Keen
Попробовать поставить внешний монитор питания (есть даже маленькие в SOT-23 корпусе типа MAX803).
Или вбить значения в исходник намертво, без возможности их изменения кнопками, но это отстой :dont_know:

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

Добавлено: Ср окт 30, 2013 12:39:48
isx
Engineer_Keen писал(а):Попробовать поставить внешний монитор питания
а это как поможет?
Engineer_Keen писал(а):без возможности их изменения кнопками, но это отстой
это да... Регулировка здесь обязательна...

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

Добавлено: Ср окт 30, 2013 13:05:33
Engineer_Keen
isx писал(а):а это как поможет?
EEPROM портится когда контроллер работает на пониженном напряжении (говорят что это из-за выполнения инструкций по случайным адресам). Такая возможность вроде как исключается, если включен внутренний BOD, который в эти моменты времени держит контроллер в ресете. Ну а раз при 0*С глючит и внутренний BOD (а глючит ли он у вас? включите проверьте!), то заместо него можно воткнуть внешний (у MAX803 диапазон от -40*С).

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

Добавлено: Ср окт 30, 2013 13:53:49
isx
Тоесть вешать его нужно на ресет?
Из супервизоров в наличии у нас только MAX1232ESA, но у него напряжение срабатывания 4.6В, мне кажется многовато...
Есть под заказ, но чё то не понятно. Посмотрите пожалуйста, там 2 товара с ценой, один 86 другой 6 руб. в чём разница и который мне нужен? http://www.compel.ru/?s=MAX803
P.S. НЕ реклама!

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

Добавлено: Ср окт 30, 2013 13:57:02
Gudd-Head
isx писал(а):в чём разница
Производитель, напряжение срабатывание, температурный диапазон...

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

Добавлено: Ср окт 30, 2013 14:04:45
Engineer_Keen
Можно и 1232 поставить.

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

Добавлено: Ср окт 30, 2013 14:04:57
isx
Странно... Такой большой ценовой разброс при таких маленьких различиях параметров...
Нашёл ещё TPS3510P в наличии, но с даташитом никак не разберусь..

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

Добавлено: Сб ноя 02, 2013 03:16:13
vitalik_1984
isx писал(а):Странно... Такой большой ценовой разброс при таких маленьких различиях параметров...
Так в посмотрите минимальную партию то :))) нахрена вам 1500 штук ? В серию будете выпускать?
TPS3510P в наличии, но с даташитом никак не разберусь..
Он похоже вам не подойдёт. Больше похоже на защиту питания материнской платы – отслеживает сразу три напряжения. Если только вся схема питается от 12 вольт, то можно подать через резисторный делитель на ненужные ножки. А нужное напряжение мониторить.

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

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

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

Добавлено: Чт ноя 07, 2013 09:19:19
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)
    {
    }
}

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

Добавлено: Чт ноя 07, 2013 09:47:28
Аlex
Сочувствую :(

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

Добавлено: Чт ноя 07, 2013 09:47:57
a_skr
Правильно выдает. Вызываете функцию key_scan с параметрами, а объявлена она без них.

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

Добавлено: Чт ноя 07, 2013 09:52:23
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)
    {

    }
}

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

Добавлено: Чт ноя 07, 2013 09:59:46
pyzhman
Попробуйте так:

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

(KEY1UM,0)

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

Добавлено: Чт ноя 07, 2013 10:00:30
a_skr
#include <avr/interrupt.h>
#include <avr/io.h>
#include <util/delay.h>
AStudio не знает такого:
PIND.2

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

Добавлено: Чт ноя 07, 2013 10:02:27
service47
pyzhman писал(а):Попробуйте так:

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

(KEY1UM,0)
То же самое.

Это под Atmel Studio 6, а как тогда если не PIND.2
там даже в строке вверху при выделении пина появляется :
#define PIND _SFR_IO8(0x09)

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

Добавлено: Чт ноя 07, 2013 10:03:55
Gudd-Head
service47 писал(а):То же самое, ошибка не пропала.
Есть много тем конкретно по языку С. Например, http://radiokot.ru/forum/viewtopic.php?f=62&t=37190

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

Добавлено: Чт ноя 07, 2013 10:06:05
a_skr
//#define KEY1UM PIND.2
#define KEY1UM ((PIND & (1<<PD2)) ? 1 : 0)

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

Добавлено: Чт ноя 07, 2013 10:09:11
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)
    {

    }
}

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

Добавлено: Чт ноя 07, 2013 10:11:29
a_skr
Кол-во скобок посчитайте. ;) Открывающих и закрывающих.