Форум
 

Вернуться   Форум "Фрикер Клуб" - кодграббер своими руками > Основной раздел > Микроконтроллеры

Важная информация

Ответ
 
Опции темы Опции просмотра
Старый 23.06.2017, 11:38   #51
EPA Меню Пользователя
Супер Модератор
 
Аватар для EPA
 
Регистрация: 01.11.2016
Сообщений: 1,223
По умолчанию Re: attiny2313 программный SPI

Смотри:
9600 поделить на 1200 равно 8. Тебе это ничего не говорит? Пределитель у тебя делит таковую частоту на 8. вывод: смотрим настройки фьюзов SCdev8

Добавлено через 41 минуту
Про 15 метров :
однозначно RS-485, от глюков: почитай по протокол например MODBUS.

Добавлено через 6 минут
Про блочность:
все верно делаешь. Если конечно позволяют ресурсы по памяти и быстродействию.

Добавлено через 10 минут
Про герконы: опасная вещь, штука не надежная. Не замечал на АЗС иногда на ТРК пистолет гонит - это Ё геркон!

Добавлено через 42 минуты
алгоритм от глюков герконов (ЗАДУМКА).
Входные данные: 14 герконов на одной линии.
Задача: определить достоверность информации.

1. Если сработали два геркона, то идем на проверку достоверности
2. Если сработали два соседних геркона, например 3,4 - то нормалек пока.
А если сработал 2 а потом 10, то Ахтунг! Актунг! АТАС!

Добавлено через 15 минут
И вообще защита от перелива, как вариант поставить поплавок от бачка соседского унитаза
EPA вне форума   Ответить с цитированием
Старый 23.06.2017, 15:32   #52
EPA Меню Пользователя
Супер Модератор
 
Аватар для EPA
 
Регистрация: 01.11.2016
Сообщений: 1,223
По умолчанию Re: attiny2313 программный SPI

1. По поводу датчика уровня воды: я бы заместо герконовых датчиков, поставил бы один ультразвуковой датчик типа HC-SR04. ДЕШЕВО, СЕРДИТО, ДВА ПРОВОДА на весь БАК. А геркон тебя подведет особенно зимой!
2. По поводу обещанного кода: я посмотрел свой дефаин файл с настройками, там у меня без комментариев, я то там понимаю где да что, а тебе ещё неделю буду объяснять. Чето неохота
3. По поводу хитрых схем: я уже сказал какую книжку найти в сети. Если не найдешь, то скину по мылу.

Вижу ты уже на правильном пути, "подпинывать" в нужное направление уже не надо


Будут вопросы, не тормози и не стесняйся. Здесь тебе всегда помогут!

Последний раз редактировалось EPA; 23.06.2017 в 15:36.
EPA вне форума   Ответить с цитированием
Старый 26.06.2017, 09:27   #53
mr_Alex Меню Пользователя
Вступил в клуб
 
Регистрация: 07.06.2017
Сообщений: 15
По умолчанию Re: attiny2313 программный SPI

Я думал про ультрозвуковой датчик. Но остановился на герконах, как потенциально надежных в данных конкретных условиях эксплуатации. Дело в том, что линейка герконов помещена вместе с термодатчиком в герметичную пластиковую водопроводную трубу и находится в баке с водой. Не думаю что ультразвуковой датчик типа HC-SR04 проработает долго в условиях повышенной температуры, влажности и даже пара - помещать его в бак очень не надежно.

Не могу подружить мегу с тинькой. Софтовый USART для меги взял отсюда. Первое - отдает опять на скорости 1200 при частоте 8 МГц и прескалере 8. Вроде так указано в коментах внизу, но работать не хочет. Второе - какой-то трабл с приемом - после отсылки мега останавливается. Вероятно ждет, но не получает ответа. Буду разбираться в чужом коде. ((
mr_Alex вне форума   Ответить с цитированием
Старый 26.06.2017, 21:50   #54
EPA Меню Пользователя
Супер Модератор
 
Аватар для EPA
 
Регистрация: 01.11.2016
Сообщений: 1,223
По умолчанию Re: attiny2313 программный SPI

Скинь инициализацию ЮСАРТА именно меги8. Там немножко по другому инициализация организована. Проверю свою догадку.
Причем стопудово.

Добавлено через 10 минут
Там говнокод для твоего Компилятора.

Добавлено через 1 час 48 минут
Цитата:
Буду разбираться в чужом коде. ((

Ну их НАК этих блогеров с других сайтов. Частенько какашку подсунут в красивом фантике. Я на этом уже обжигался. Возьми скачай нормальную книжку. Стопудово время потом сэкономишь. По идее правильнее изучать: сначала теория -потом практика- потом ОПЫТ!
А так заниматься копирайтом и в итоге "тыкатся" как слепой котёнок в чужом коде (либо говнокоде СУПЕРПУПЕРР УНИВЕРСАЛЬНОЕ РЕШЕНИЕ, как в твоей ссылке).
Еще раз ну его НаХ.
Тебе что не жалко своего потраченного времени?

Добавлено через 17 минут
9600-8n1:
Код:
UCSRC |=(1<< URSEL)|(1<< UCSZ0)|(1<< UCSZ1); //Обрати внимание на красные буквы, это фишка меги8
Добавлено через 1 час 4 минуты
Посмотрев внимательно код по ссылке. А прескалер там всетаки 1.

Последний раз редактировалось EPA; 26.06.2017 в 18:34.
EPA вне форума   Ответить с цитированием
Старый 27.06.2017, 05:47   #55
EPA Меню Пользователя
Супер Модератор
 
Аватар для EPA
 
Регистрация: 01.11.2016
Сообщений: 1,223
По умолчанию Re: attiny2313 программный SPI

Про второе ...трабл остановки меги8:
такая ситуация может возникнуть, когда юсарт уходит в ожидание уходит в loop.(петля). И прога выйти сможет тока при высшем приоритете прерывания. A юсарт имеет достаточный высокий приоритет, таймера и PCINT - отдыхают, когда дядя Юсарт работает.
EPA вне форума   Ответить с цитированием
Старый 27.06.2017, 11:47   #56
EPA Меню Пользователя
Супер Модератор
 
Аватар для EPA
 
Регистрация: 01.11.2016
Сообщений: 1,223
По умолчанию Re: attiny2313 программный SPI

Вот тебе организация приема и передачи MK во внешний мир. (в данном случае Ат2313-> внешний мир)
Инициализация USART 9600 8n1
Код HTML:
#define INIT_USART()    UBRRH = 0;\
				    UBRRL = 51;\
				    UCSRA = !(1<<U2X);\
				    UCSRB = (1<<RXEN)|(1<<TXEN)|(1<<RXCIE)|(0<<TXCIE)|(0<<UDRIE);\
				    UCSRC = (0<<USBS)|(1<<UCSZ0)|(1<<UCSZ1)
инициализацию cделаешь в main() записав строчку INIT_USART() ;

Дальше перед главной функцией main() напишешь/ опишешь функции приема и передачи USART, которые будешь использовать в коде:
Код HTML:
void USART_SendChar(uint8_t c) // передать через UART во внешний мир символ/байт
{
	while(!(UCSRA & (1<<UDRE)));
	UDR = c;
}
void USART_SendStr(const uint8_t* s, uint8_t n, uint8_t newline) // передать через UART во внешний мир массив:указатель массива *s,n-кол-во символов,newline-переход на новую строку
{
	uint8_t i=0;
	while(i!=n)
	{
		USART_SendChar(*s++); // см. выше
		i++;
	}
	if (newline) USART_SendChar(13); // переход на новую строку 13-это каретка если она тебе нужна	
}
uint8_t USART_GetChar(void)  // получить в МК из внешного мира Char/байт
{
	while(!(UCSRA&(1<<RXC)));
	return UDR;
}
Дальше как понять, что тебе что-то пришло ТОКА ЧЕРЕЗ ПРЕРЫВАНИЯ. Смотрим
Код HTML:
//--------получение через прерывание команд USART
ISR(USART_RX_vect) // Прерывание   - общение с МК ч/з USART
{
	cli();
	char choose;
	
	choose=USART_GetChar();

	if( choose != -1 )  // a и b -от фанаря придумал - это команды!
	{
		switch (choose)
		{
			case 'a': 	{...чето делаем;	break;	}

			case 'b': 	{...чето делаем;	break;	}		
                 }
	}
}
И ВСЁ! ВАМ ТОКА ОСТАЕТСЯ ПРИДУМАТЬ ПРАВИЛЬНЫЙ ПРОТОКОЛ ОБМЕНА ИНФОЙ!

Так же делаешь и с мегой8 но дописав в инициализацию дяди Юси бит в регистр который выделен красной строчкой в предыдущем посте

Последний раз редактировалось EPA; 27.06.2017 в 11:52.
EPA вне форума   Ответить с цитированием
Ответ

Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 01:21. Часовой пояс GMT +3.


vBulletin 4.1.0 Перевод: zCarot
(C) www.phreakerclub.com
Яндекс.Метрика