0
В папке V2.0 архивы
ArduinoIDE_and_LanPLC.zip — IDE с библиотеками
LanPLC.zip — скетч со всеми вспомогательными файлами
Файл HTML\server.cmd запускает маленький веб сервер для отладки HTML
Только нужно пути подправить.

В скетче отключены SPI регистры
//#define SPI595_ENABLE // comment for disabling SP595
//#define SPI165_ENABLE // comment for disabling SP165
С этим #define SPI165_ENABLE компилироваться не будет.
Я переделывал скетч и что-то накосячил. Надо разбираться…
С #define SPI595_ENABLE работать вроде будет, но не уверен, так как последний раз с регистрами не отлаживал.
avatar

GraninDm

  • 19 августа 2016, 20:44
0
Скопируйте библиотеки в эту папку
arduino\hardware\arduino\avr\libraries
avatar

GraninDm

  • 18 августа 2016, 13:27
0
А вы библиотеки скачали из папки libs с google disk и установили?
avatar

GraninDm

  • 18 августа 2016, 13:15
0
Добрый день!
Вы какую версию пробуете?
Лучше пробуйте из папки V 2.0
И какая ошибка?
avatar

GraninDm

  • 18 августа 2016, 12:56
0
Нет. Не исчезнет. Дело в самих регистрах. Я это могу побороть. Но мне лень.
В вашем случае при управлении реле через выходы ардуино напрямую такого не будет.
avatar

GraninDm

  • 23 июня 2014, 14:09
0
Странно. Ссылка пропала.
В папке проекта в папке Doc
https://drive.google.com/folderview?id=0B7NuO_z3PX3NcUJIdGFvZlJNY00&usp=sharing&tid=0B7NuO_z3PX3NUTNncGw0VzQwRTQ
avatar

GraninDm

  • 23 июня 2014, 14:01
0
Просто без использования аппаратного SPI мне этот проект был не особо интересен.
В ближайшее время думаю сделать условную компиляцию для отключения 74HC165, 74HC595.
И сделаю прямые выходы.
avatar

GraninDm

  • 23 июня 2014, 13:29
+2
Я собственно отказался от приза и попросил устроителей конкурса передать мой приз вам.
Они не против. Так что если это вас немного утешит — примите его.
avatar

GraninDm

  • 6 июня 2014, 12:31
+1
Я бы на вашем месте не расстраивался. Потраченное время — не есть гарантия получение желаемого результата.
А вообще привыкайте.
Такова Се ля Ви.
:))
avatar

GraninDm

  • 6 июня 2014, 11:29
0
Собственно, разместил две статьи на конкурс…
1. Практическая статья «Программируемый логический контроллер»
2. Теоретическая статья «Пример конечного цифрового автомата»
Принимайте
:)
avatar

GraninDm

  • 31 мая 2014, 21:57
0
Это ТОЧНО не прерывание. Я в свое время потратил кучу времени на изучение HardwareSerial
#include <Arduino.h>

int main(void)
{
	init();

#if defined(USBCON)
	USBDevice.attach();
#endif
	
	setup();
    
	for (;;) {
		loop();
		if (serialEventRun) serialEventRun();
	}
        
	return 0;
}

По большому счеты это вообще бесполезная процедура.
Все это встраивается в loop в цикл
while(Serial.available()){}

А вот переполнение буфера можно получить как нефиг делать
#if (RAMEND < 1000)
	#define SERIAL_BUFFER_SIZE 16
#else
	#define SERIAL_BUFFER_SIZE 64
#endif

Если loop будет длиться больше чем идут SERIAL_BUFFER_SIZE байт, см. исходник
unsigned int i = (unsigned int)(buffer->head + 1) % SERIAL_BUFFER_SIZE;

	// if we should be storing the received character into the location
	// just before the tail (meaning that the head would advance to the
	// current location of the tail), we're about to overflow the buffer
	// and so we don't write the character or advance the head.
	if (i != buffer->tail) {
		buffer->buffer[buffer->head] = c;
		buffer->head = i;
		return 1;
	}
	else{
		return 0;
	}
avatar

GraninDm

  • 10 октября 2013, 08:36
+1
Вы не поверите, но благодаря google он увеличится в google раз.
avatar

GraninDm

  • 5 июля 2013, 15:06
+1
Вот например: http://playground.arduino.cc/code/timer1
Вообще, все что касается arduino, ищется на ура.
У меня, например, еще не было случая, чтобы пришлось на форумах писать о проблеме.
Обычно поищешь, почитаешь и все становиться понятно.
avatar

GraninDm

  • 5 июля 2013, 10:57
0
Да, про декодирование упустил.
Только в нем вообще нет никакого смысла.
Важна только последовательность смены кодов.
А преобразования — это лишние телодвижения.
avatar

GraninDm

  • 2 июля 2013, 06:38
0
получим обратную последовательность: 3, 2, 1, 0.

Обратная последовательность должна быть 2, 3, 1, 0
avatar

GraninDm

  • 28 июня 2013, 10:39
+1
Нашел библиотеку arduino-pinchangeint, которая позволяет обрабатывать прерывания от любых пинов arduino
https://code.google.com/p/arduino-pinchangeint/

Выдержка оттуда:
What are Pin Change interrupts? The ATmega328p processor at the heart of the Arduino has two different kinds of interrupts: “external”, and “pin change”. There are only two external interrupt pins, INT0 and INT1, and they are mapped to Arduino pins 2 and 3. These interrupts can be set to trigger on RISING or FALLING signal edges, or on low level. The triggers are interpreted by hardware, and the interrupt is very fast. On the other hand there are only 2 such pins on the ATmega328p in the Arduino Uno and Duemilanove
Проверил один пример — работает чудесно.
avatar

GraninDm

  • 28 июня 2013, 10:34