renoshnik, Заглянул в ту библу дисплея -она общается с SPI напрямую, _не используя_ ардуиновскую библиотеку SPI.h. А шина SPI у модели мк *P существенно отличается от *D и меги328. У *P шина SPI более навороченная, имеет дополнительные регистры управления. Так что скорее всего дело в этом. Нужно переписывать библиотеку дисплея.
renoshnik, Заглянул в ту библу дисплея -она общается с SPI напрямую, _не используя_ ардуиновскую библиотеку SPI.h. А шина SPI у модели мк *P существенно отличается от *D и меги328. У *P шина SPI более навороченная, имеет дополнительные регистры управления. Так что скорее всего дело в этом. Нужно переписывать библиотеку дисплея.
Я это подозревал ... но надеялся, что это не так .... :-(
Выдает (строка 013) - - ПРЕДУПРЕЖДЕНИЕ: библиотека Wire должна запускаться на архитектурах avr и может быть несовместима с вашей платой на архитектуре XI.
Проблема с подключением библиотек.... Wire, SPI ...
Выдает (строка 013) - - ПРЕДУПРЕЖДЕНИЕ: библиотека Wire должна запускаться на архитектурах avr и может быть несовместима с вашей платой на архитектуре XI.
Проблема с подключением библиотек.... Wire, SPI ...
Выдает (строка 013) - - ПРЕДУПРЕЖДЕНИЕ: библиотека Wire должна запускаться на архитектурах avr и может быть несовместима с вашей платой на архитектуре XI.
В папке библиотеки откорректировал файл library.properties
name=Wire
version=1.0
author=Arduino
maintainer=Arduino <info@arduino.cc>
sentence=Allows the communication between devices or sensors connected via Two Wire Interface Bus. For all Arduino boards, BUT Arduino DUE.
paragraph=
category=Communication
url=http://www.arduino.cc/en/Reference/Wire
// architectures=avr
architectures=XI
Новость: Из обсуждений скетча-программатора для LGT8F на гитхабе - один из пользователей пишет, что связался с техническим директором производителя, и тот сообщил, что в ближайшее время выпустят новую версию скетча-прошивальщика с поддержкой LGT8F328P.
Как то так получилось, что пришлось делать новый проект, а НАНО в загашнике не оказалось, за то нашлось аж две наноподобные зеленые платки (те, которые вообще без кварцов), на этом чуде китайской мысли.
Я сначала сильно расстроился, ввиду того, что в кор на гитхабе нормально работает либо ШИМ, либо delay (при чем не сам делай, а вообще все сломано по таймеру). К тому же тот кор не работает на ИДЕ выше 1.8.5.
Но, как оказалось, последний кор от производителя чипа оказался куда лучше.
Что пришлось применить мне, и как оно работает: работа в ИДЕ 1.8.10 = ОК; SPI для работы с NRF24 = OK; PWM = OK; millis(), delay() = OK; навели порядок с Serial, String, PROGMEM, F() и т.п.
Как оказалось, НЕ работает pinMode(pin, INPUT_PULLUP). Точнее, вход работает, но подтягивающий к +питания резистор не подключается. Пришлось делать pinMode(pin, INPUT), digitalWrite(pin, HIGH); - так подтяжка работает, вот только теперь боюсь пин на прямую на массу сажать. Не уверен, что таким образом весь ток через контроллер не полетит, а не через резистор. Хотя, в SDK с того же сайта, именно так и сделано в случае INPUT_PULLUP.
Пардон муа: Как оказалось - "сам дурак". INPUT_PULLUP тоже работает. Просто этот пин у меня то вход, то выход. Оказалось я ему дальше по тексту программы digitalWrite(pin, LOW); делаю.
Ребята, а кто-то знает на какой частоте ШИМ-ит этот чип по умолчанию? А то вроде поставил RC фильтр из расчета на 500Hz, как для НАНО, а у меня напряжения плавают под нагрузкой. R=320, C=1мкФ. Нагрузка - вход управления с руля китайской магнитолы. Там своя подтяжка до 3.3в, и неизвестное входное сопротивление, но известно что это ADC STM32L. Когда делал эмулятор двухканальной резистивной ручки управления круизом на Додж Калибер - такое прокатывали (всмысле эмуляция резисторов делителя ШИМ-ом с Нано), а тут ни в какую, наверное потому что пики и выбросы, которые ловит ADC. Так оно и по тестеру видно, что напряжение плавает.
Возник один вопрос, - а есть ли возможность пасивно ШИМ-ить, в смысле чтобы контроллер не переключал выход к + и - со скважностью, а как бы переходил состояние высокого/низкого сопротивления своего выхода по отношению земли? Тогда это работало бы на много надёжнее.
Это вообще тема - как положить пин на массу, а потом поднять его, но не подавая напряжения. Таким образом резисторы можно было бы просто переключать.
pinMode(pin, OUTPUT);
digitalWrite(pin, LOW); //посадили резистор делителя на массу
pinMode(pin, INPUT); //поднять с массы
Возник один вопрос, - а есть ли возможность пасивно ШИМ-ить, в смысле чтобы контроллер не переключал выход к + и - со скважностью, а как бы переходил состояние высокого/низкого сопротивления своего выхода по отношению земли?
Насколько я знаю нет. Но для реализации такой возможности достаточно подключить на выход транзистор.
Возник один вопрос, - а есть ли возможность пасивно ШИМ-ить, в смысле чтобы контроллер не переключал выход к + и - со скважностью, а как бы переходил состояние высокого/низкого сопротивления своего выхода по отношению земли?
Насколько я знаю нет. Но для реализации такой возможности достаточно подключить на выход транзистор.
Ок. А подключение резисторов, той процедурой, что я выше предполагал, возможно, или ошибаюсь?
// Пример использования Таймера 3 (Блинк на таймере) для платы WAVGAT
// (с) UA6EM на основе заимствований на arduino.ru у DIMAX и ЕвгенийП
// используется библиотека ЕвгенийП "ConstTimers.h"
#include "lgtx8p.h"
#define CONSTANTS
#ifndef CONSTANTS
#include "ConstTimers.h"
// Параметры для работы таймера/счётчика №3 на частоте 1Гц
//
constexpr uint8_t timerBits3 = getPrescalerBits(1, 1);
constexpr uint16_t timerTicks3 = getTimerTicks(1, 1);
//
#endif
void setup() {
#ifdef CONSTANTS
TCCR3B = 4;
/* * OCR3A = 62500; /* */ // Загружать 8 битными регистрами
uint8_t r3ah = 62500 / 256;
OCR3AH = r3ah;
uint8_t r3al = 62500 % 256;
OCR3AL = r3al;
#else
TCCR3B =1<<WGM32 |timerBits3; // Режим СТС WGM3[3:0]=4 или 12
if(timerTicks3 > 255){
uint8_t r3ah = timerTicks3 / 256;
OCR3AH = r3ah;
uint8_t r3al = timerTicks3 % 256;
OCR3AL = r3al;
}else{
OCR3AH = 0x00;
uint8_t al = timerTicks3;
OCR3AL = al;
}
#endif
DDRF = 1<<2 | 1<<1; // Разрешаем вывод в порты D1 и D2
TCCR3A=1<<COM3A0 | 1<<COM3B0; // ПИН D2 + TXI
pinMode(13,OUTPUT);
//Serial.begin(115200);
}// end-Setup
void loop(){
digitalWrite(13,!digitalRead(2));
// Serial.println(timerBits3);
} // END
Да, если без библиотеки - не будет работать, загружать таймер надо двумя 8-ми битными регистрами (строка 20 неправильная), поправил, сейчас должно работать
Конечно пробовал, не зря же я этот макрос "раскрыл".
Я, кстати, в программировании не силен. Руководствоваться вынужден, в основном, здравым смыслом. Мой здравый смысл отказывается мириться вот с этим сочетанием.
Это вообще тема - как положить пин на массу, а потом поднять его, но не подавая напряжения. Таким образом резисторы можно было бы просто переключать.
pinMode(pin, OUTPUT);
digitalWrite(pin, LOW); //посадили резистор делителя на массу
pinMode(pin, INPUT); //поднять с массы
Timer3. Что-то у меня с прерыванием от него не получается. Не работает:
Может кто-нибудь сможет помочь?
Будет ли помощью, если я скажу, что работать и не должно? :) Аддон для LGT в Arduino IDE не самостоятельный, а надстройка к меге328, в ней меньшее количество прерываний, и 29-е прерывание у него в объектном файле не прописано. В общем лёгкого пути для решения этой проблемы (в Arduino IDE) нет, к сожалению. Наиболее простой способ использовать отсутствующие в меге328 прерывания - сгенерить LGTSDK буилдером исходник, и потом скомпилить в 4й студии. Но это, наверное, будет слишком сложно для начинающих.
А будет ли помощью, если я вам дам ссылку на альтернативный кор для этого камня? https://github.com/dbuezas/lgt8fx
А вдруг там работает то, что вам надо?
>...чисто аппаратно подойдёт любой программатор Jtag, проблема в поддержке данного МК софтом для программирования.
Вот тут, по ссылке, обсуждается DIY Programmer (LGT Mini Box): http://maker.lceda.cn/p/costar/lgt_mini_box
Там можно скачать:
- софт (lgtmix_isp_v3.7.5) для программирования LGT8F328P;
- Arduino BootLoader для LGT8F328 (zadig-2.3.rar)
Всего-то: "Откройте LGTMix_ISP v3.7.5.exe, нажмите Program для загрузки optiboot_lgt8f328p.hex и нажмите Write." ;)
Alex-Bee, по ссылкам обычные программаторы jlink/stlink, не совместимые c LGT . Проще забить на этот мк, он не стоит того, что-б тратить на него время. Единственно достойная замена AVR -это stm32, пора это принять как факт :)
Доброго времени суток! Имею WAGWAT Pro Mini (по ссылке от Гайвера). Подкинул файлы от производителя для плат. Выбираю в списке WAGWAT Pro mini. Не компилируется такой простой скетч (смысла в нём нет, просто выделил проблему из своего проекта). Как я понимаю yield - это одна из стандартных функций ардуино. Если выбрать родную плату Pro mini, то всё компилируется, но только понятное дело не заливается. На что влияет выбор платы, в какую хоть сторону смотреть?
Кто вам сказал такую глупость? https://doc.arduino.ua/ru/prog/Scheduler тут yield используется для передачи управления. Он же yield - недокументированная дырка в delay(), в которую можно вставить свой код, исполняющийся во время delay. Но это именно дырка, а не стандартная функция.
Во-первых, спасибо большое за ссыль, по крайней мере теперь компилируется и заливается. )
Во-вторых, почему же сразу глупость? Что бы её использовать не нужно делать никаких инклудов, разве это нельзя считать признаком стандартности ( для Ардуины конечно, не для СИ )?
В-третьих, более общий вопрос, что же из себя представляет "кор"? Понимаю смутно, что либы, инструкции для компилятора, какие-то ещё настройки...
Пожалуйста.
Стандартной не считается потому, что нигде не описана как стандартная. Оно вообще нигде не описана. Дырка есть, а документации на нее нет. А раз доков нет, то в каждом коре она не обязана быть. Или может быть использована по своему. Например, в кор для esp8266, yield используется для обслуживания WiFi стека. Поэтому этот суслик не засчитывается. :)
Кор - вот это вот все, что вы написали и ещё чуть-чуть.
Вот вы наверное понимаете, что digitalRead, digitalWrite, delay, analogRead и т.п. это не С?
Считывание цифровых, аналогов пинов, управление ими и т.п. в каждом типе микроконтроллера использует разную адресацию, методы, установки. Но чтобы для вы могли использовать те же функции, для любого из них, в среде Ардуино, существует кор. К примеру digitalRead это всего лишь функция, способ использования которой в Ардуино всегда одинаков для юзера, а реализация в каждом кор разная.
Наиболее простой способ использовать отсутствующие в меге328 прерывания - сгенерить LGTSDK буилдером исходник, и потом скомпилить в 4й студии. Но это, наверное, будет слишком сложно для начинающих.
Вроде бы ничего сложного. Скачал LGTSDK_Builder_1.5beta30
Светодиодом поморгал, USART попробовал. Получилось – использовал LGTSDK - WinAVR - avrdude - монитор порта от Arduino IDE. С прерываниями ничего не получилось. Даже Watch Dog Timer не смог запустить.
Собственно для стороннего компилятора, как мне показалось, он только одну дополнительную вещь делает (всегда) – создаёт файл start.s
Здравствуйте, подскажите как правильно подключить внешний кварц к данному МК. подпаял кварц на 32.768 к PB6 и PB7 и два кондера на 18пф, выбрал Clock source: External, но в ответ тишина.
Ну так и ищите, как правильно заинициализировать от внутреннего с тактовой частотой 16 мегагерц
я бы попробовал указать другую плату WAVGAT nano, может с делеями и наладится?
renoshnik, Заглянул в ту библу дисплея -она общается с SPI напрямую, _не используя_ ардуиновскую библиотеку SPI.h. А шина SPI у модели мк *P существенно отличается от *D и меги328. У *P шина SPI более навороченная, имеет дополнительные регистры управления. Так что скорее всего дело в этом. Нужно переписывать библиотеку дисплея.
renoshnik, Заглянул в ту библу дисплея -она общается с SPI напрямую, _не используя_ ардуиновскую библиотеку SPI.h. А шина SPI у модели мк *P существенно отличается от *D и меги328. У *P шина SPI более навороченная, имеет дополнительные регистры управления. Так что скорее всего дело в этом. Нужно переписывать библиотеку дисплея.
Я это подозревал ... но надеялся, что это не так .... :-(
таки какая скорость SPI ?
Каккой-то загадочный модуль CMU распределения тактовых чатсот...
Вообще дичь какая-то.
последняя версия pdf с сайта теперь недоступна, вот еще два источника для загрузки
https://vk.cc/9yRtHI
http://www.lgtic.com/upload/lgt8fx8p/LGT8FX8P_databook_v1.0.4.pdf
Похоже чип прожил недолго ))
//таки какая скорость SPI ?
И че, по своей же ссылке слабо найти на 169стр. что от Fsys/2 до Fsys/128. Ниче в этой части не менялось.
аа отстойная документация...
на картинках одно обозначения в таблицах другие термины, видимо болезнь от atmel передалась
Спасибо и с SPI2X наеб.и написано удвоение скорости...
ну да ,удвоение, с меньшим в двое, делением той же частоты ))
Ну выключил делитель - будет удвоение! )))
Купил козу - продай козу ;)
Всем привет!
Народ подскажите а эту плату можно отлаживать (например в Atmel Studio), если да, то подскажите что для этого нужно?
Проблема с подключением библиотек.... Wire, SPI ...
Выдает (строка 013) - - ПРЕДУПРЕЖДЕНИЕ: библиотека Wire должна запускаться на архитектурах avr и может быть несовместима с вашей платой на архитектуре XI.
кто-то сталкивался с таким ? как решить ?
С таким логом предупреждение кое-кому еще впаять..... А срока 113 тебе ни о чем не говорит.....
С таким логом предупреждение кое-кому еще впаять.....
Спрятал под спойлер ...
А срока 113 тебе ни о чем не говорит.....
Говорит...
по адресам :
c:\Users\Admin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.1\libraries\Wire\
c:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\
удалил папки, больше аналогичных файлов не нашёл... НО проблема НЕ решилась ....
Проблема с подключением библиотек.... Wire, SPI ...
Выдает (строка 013) - - ПРЕДУПРЕЖДЕНИЕ: библиотека Wire должна запускаться на архитектурах avr и может быть несовместима с вашей платой на архитектуре XI.
кто-то сталкивался с таким ? как решить ?
я сталкивался ТУТ начало ТУТ конец
Проблема с подключением библиотек.... Wire, SPI ...
Выдает (строка 013) - - ПРЕДУПРЕЖДЕНИЕ: библиотека Wire должна запускаться на архитектурах avr и может быть несовместима с вашей платой на архитектуре XI.
кто-то сталкивался с таким ? как решить ?
я сталкивался ТУТ начало ТУТ конец
В том-то и дело. что не помогает... С "еепромом" проблем нет, а вот с этим проблема...
Та-то библиотеку брало из нужного места. а тут не получается так сделать...
Проблема решена ....
В папке библиотеки откорректировал файл library.properties
исправление в последней строке !
Новость: Из обсуждений скетча-программатора для LGT8F на гитхабе - один из пользователей пишет, что связался с техническим директором производителя, и тот сообщил, что в ближайшее время выпустят новую версию скетча-прошивальщика с поддержкой LGT8F328P.
Всем добра!
Сходил на сайт производителя, там в разделе закачек нашел новый кор Ардуино ИДЕ под это чудо. Вот ссылка на закачку http://www.lgtic.com/upload/tools/arduino/Larduino_HSP_latest.rar
А вот тут https://www.avrfreaks.net/sites/default/files/forum_attachments/LGT8FX8P_databook_v1.0.5-English.pdf человек озаботился переводом на аглицкое наречие документации. Его потуги здесь https://www.avrfreaks.net/forum/success-story-lgt8f328p-linux
Как то так получилось, что пришлось делать новый проект, а НАНО в загашнике не оказалось, за то нашлось аж две наноподобные зеленые платки (те, которые вообще без кварцов), на этом чуде китайской мысли.
Я сначала сильно расстроился, ввиду того, что в кор на гитхабе нормально работает либо ШИМ, либо delay (при чем не сам делай, а вообще все сломано по таймеру). К тому же тот кор не работает на ИДЕ выше 1.8.5.
Но, как оказалось, последний кор от производителя чипа оказался куда лучше.
Что пришлось применить мне, и как оно работает: работа в ИДЕ 1.8.10 = ОК; SPI для работы с NRF24 = OK; PWM = OK; millis(), delay() = OK; навели порядок с Serial, String, PROGMEM, F() и т.п.
Как оказалось, НЕ работает pinMode(pin, INPUT_PULLUP). Точнее, вход работает, но подтягивающий к +питания резистор не подключается. Пришлось делать pinMode(pin, INPUT), digitalWrite(pin, HIGH); - так подтяжка работает, вот только теперь боюсь пин на прямую на массу сажать. Не уверен, что таким образом весь ток через контроллер не полетит, а не через резистор. Хотя, в SDK с того же сайта, именно так и сделано в случае INPUT_PULLUP.
Пардон муа: Как оказалось - "сам дурак". INPUT_PULLUP тоже работает. Просто этот пин у меня то вход, то выход. Оказалось я ему дальше по тексту программы digitalWrite(pin, LOW); делаю.
Ребята, а кто-то знает на какой частоте ШИМ-ит этот чип по умолчанию? А то вроде поставил RC фильтр из расчета на 500Hz, как для НАНО, а у меня напряжения плавают под нагрузкой. R=320, C=1мкФ. Нагрузка - вход управления с руля китайской магнитолы. Там своя подтяжка до 3.3в, и неизвестное входное сопротивление, но известно что это ADC STM32L. Когда делал эмулятор двухканальной резистивной ручки управления круизом на Додж Калибер - такое прокатывали (всмысле эмуляция резисторов делителя ШИМ-ом с Нано), а тут ни в какую, наверное потому что пики и выбросы, которые ловит ADC. Так оно и по тестеру видно, что напряжение плавает.
У него выходы послабей, может потому просело.
Возник один вопрос, - а есть ли возможность пасивно ШИМ-ить, в смысле чтобы контроллер не переключал выход к + и - со скважностью, а как бы переходил состояние высокого/низкого сопротивления своего выхода по отношению земли? Тогда это работало бы на много надёжнее.
Это вообще тема - как положить пин на массу, а потом поднять его, но не подавая напряжения. Таким образом резисторы можно было бы просто переключать.
pinMode(pin, OUTPUT);
digitalWrite(pin, LOW); //посадили резистор делителя на массу
pinMode(pin, INPUT); //поднять с массы
И так pinMode клацать туда-сюда, прокатит?
Насколько я знаю нет. Но для реализации такой возможности достаточно подключить на выход транзистор.
Насколько я знаю нет. Но для реализации такой возможности достаточно подключить на выход транзистор.
Ок. А подключение резисторов, той процедурой, что я выше предполагал, возможно, или ошибаюсь?
Из словесного описания не очень ясно что там. В общем случае после интегрирующей цепочки обязательно ставится повторитель на ОУ.
[quote=ua6em]
Блинк на третьем таймере:
У меня так не работает, кто-то обнуляет старший байт регистра OCR3A
А вот так работает
Блинк на третьем таймере:
У меня так не работает, кто-то обнуляет старший байт регистра OCR3A
А вот так работает
Из этого поста? У меня работало, осциллографом смотрел.
Для сравнения, что не так:
Да, если без библиотеки - не будет работать, загружать таймер надо двумя 8-ми битными регистрами (строка 20 неправильная), поправил, сейчас должно работать
Да, если без библиотеки - не будет работать,
Смотря что "не будет работать", я же код выложил, который работает (blink работает), с комментарием - как не работало (у меня).
.. загружать таймер надо двумя 8-ми битными регистрами ...
Это понятно... Я же про старший байт регистра OCR3A (OCR3AH) писал... обнуляется (кто обнуляет?)... перетащил в конец, - перестал обнуляться.
проанализировать ситуацию надо DIMAX просить )))
Timer3. Что-то у меня с прерыванием от него не получается. Не работает:
Для Timer1
а если так?
а если так?
ISR (TIMER3_COMPA_vect) {
Конечно пробовал, не зря же я этот макрос "раскрыл".
Я, кстати, в программировании не силен. Руководствоваться вынужден, в основном, здравым смыслом. Мой здравый смысл отказывается мириться вот с этим сочетанием.
pinMode(13, OUTPUT);
...............
... digitalRead(13) ...
PS
Вот эта строка рушит процесс
TIMSK3 |= (1 << OCIE3A); // *(uint8_t*)0x71 |= B00000010;
Может DIMAX отзовётся, я в таймерах начинающий )))
Это вообще тема - как положить пин на массу, а потом поднять его, но не подавая напряжения. Таким образом резисторы можно было бы просто переключать.
pinMode(pin, OUTPUT);
digitalWrite(pin, LOW); //посадили резистор делителя на массу
pinMode(pin, INPUT); //поднять с массы
И так pinMode клацать туда-сюда, прокатит?
Итак, сам спросил, сам и отвечу - прокатит.
Реализовано в моем проекте https://github.com/kostyamat/Radio-remote-control-for-car-radios
Timer3. Что-то у меня с прерыванием от него не получается. Не работает:
Будет ли помощью, если я скажу, что работать и не должно? :) Аддон для LGT в Arduino IDE не самостоятельный, а надстройка к меге328, в ней меньшее количество прерываний, и 29-е прерывание у него в объектном файле не прописано. В общем лёгкого пути для решения этой проблемы (в Arduino IDE) нет, к сожалению. Наиболее простой способ использовать отсутствующие в меге328 прерывания - сгенерить LGTSDK буилдером исходник, и потом скомпилить в 4й студии. Но это, наверное, будет слишком сложно для начинающих.
Будет ли помощью, если я скажу, что работать и не должно? :)
Да, спасибо.
А будет ли помощью, если я вам дам ссылку на альтернативный кор для этого камня?
https://github.com/dbuezas/lgt8fx
А вдруг там работает то, что вам надо?
kostyamat, там тоже самое. Все отличия от оригинального ядра перечислены в параграфе (Differences to original core...) по вашей ссылке.
kostyamat, там тоже самое. Все отличия от оригинального ядра перечислены в параграфе (Differences to original core...) по вашей ссылке.
а вот интересно в 328PB тоже есть 3-й таймер, выходит на ноги сериала, с ним как?
ua6em, у 328pb в последних IDE есть свой объектный файл (crtatmega328pb.o) , так что там, по идее, должно быть всё корректно :)
>...чисто аппаратно подойдёт любой программатор Jtag, проблема в поддержке данного МК софтом для программирования.
Вот тут, по ссылке, обсуждается DIY Programmer (LGT Mini Box):
http://maker.lceda.cn/p/costar/lgt_mini_box
Там можно скачать:
- софт (lgtmix_isp_v3.7.5) для программирования LGT8F328P;
- Arduino BootLoader для LGT8F328 (zadig-2.3.rar)
Всего-то: "Откройте LGTMix_ISP v3.7.5.exe, нажмите Program для загрузки optiboot_lgt8f328p.hex и нажмите Write." ;)
Файлы, которые есть для скачивания, на сайте (в самом низу, перед обсуждением):
lgtmix_isp_v3.7.5.rar
仿真调试参考资料.zip [Симуляция отладки reference.zip], он же swdice_mkii_v2.5.1
LGTUSB_SWD.7z
lgtmix_isp_v3.7.7.rar
zadig-2.3.rar
Руководство по Nuvoton ICP Programming можно скачать на английском, а не как на сайте.
https://server4.eca.ir/eshop/000/nu-link/Nuvoton%20NuMicro%20ICP%20Programmer%20User%20Guide.pdf
И, собственно, вопрос к знающим: то, что по ссылкам ниже, это не то же что и "LGT Mini Box"?
https://aliexpress.ru/item/33054178779.html
https://aliexpress.ru/item/32812520067.html
Alex-Bee, по ссылкам обычные программаторы jlink/stlink, не совместимые c LGT . Проще забить на этот мк, он не стоит того, что-б тратить на него время. Единственно достойная замена AVR -это stm32, пора это принять как факт :)
Доброго времени суток! Имею WAGWAT Pro Mini (по ссылке от Гайвера). Подкинул файлы от производителя для плат. Выбираю в списке WAGWAT Pro mini. Не компилируется такой простой скетч (смысла в нём нет, просто выделил проблему из своего проекта). Как я понимаю yield - это одна из стандартных функций ардуино. Если выбрать родную плату Pro mini, то всё компилируется, но только понятное дело не заливается. На что влияет выбор платы, в какую хоть сторону смотреть?
void setup(void) {
yield();
}
void loop(void) {
}
error: 'yield' was not declared in this scope
Кто вам сказал такую глупость?
https://doc.arduino.ua/ru/prog/Scheduler тут yield используется для передачи управления. Он же yield - недокументированная дырка в delay(), в которую можно вставить свой код, исполняющийся во время delay. Но это именно дырка, а не стандартная функция.
Пс. Кор от производителя ещё то г-но, рекомендую использовать вот этот https://github.com/dbuezas/lgt8fx
Во-первых, спасибо большое за ссыль, по крайней мере теперь компилируется и заливается. )
Во-вторых, почему же сразу глупость? Что бы её использовать не нужно делать никаких инклудов, разве это нельзя считать признаком стандартности ( для Ардуины конечно, не для СИ )?
В-третьих, более общий вопрос, что же из себя представляет "кор"? Понимаю смутно, что либы, инструкции для компилятора, какие-то ещё настройки...
Пожалуйста.
Стандартной не считается потому, что нигде не описана как стандартная. Оно вообще нигде не описана. Дырка есть, а документации на нее нет. А раз доков нет, то в каждом коре она не обязана быть. Или может быть использована по своему. Например, в кор для esp8266, yield используется для обслуживания WiFi стека. Поэтому этот суслик не засчитывается. :)
Кор - вот это вот все, что вы написали и ещё чуть-чуть.
Вот вы наверное понимаете, что digitalRead, digitalWrite, delay, analogRead и т.п. это не С?
Считывание цифровых, аналогов пинов, управление ими и т.п. в каждом типе микроконтроллера использует разную адресацию, методы, установки. Но чтобы для вы могли использовать те же функции, для любого из них, в среде Ардуино, существует кор. К примеру digitalRead это всего лишь функция, способ использования которой в Ардуино всегда одинаков для юзера, а реализация в каждом кор разная.
Наиболее простой способ использовать отсутствующие в меге328 прерывания - сгенерить LGTSDK буилдером исходник, и потом скомпилить в 4й студии. Но это, наверное, будет слишком сложно для начинающих.
Вроде бы ничего сложного. Скачал LGTSDK_Builder_1.5beta30
http://www.lgtic.com/upload/tools/lgtsdk_builder/LGTSDK_Builder_latest.rar
Светодиодом поморгал, USART попробовал. Получилось – использовал LGTSDK - WinAVR - avrdude - монитор порта от Arduino IDE. С прерываниями ничего не получилось. Даже Watch Dog Timer не смог запустить.
Собственно для стороннего компилятора, как мне показалось, он только одну дополнительную вещь делает (всегда) – создаёт файл start.s
Здравствуйте, подскажите как правильно подключить внешний кварц к данному МК. подпаял кварц на 32.768 к PB6 и PB7 и два кондера на 18пф, выбрал Clock source: External, но в ответ тишина.
zra123, sysClock(EXT_OSC);
не горит
не горит
А должен?
да, sysclock.ino
без sysClock(EXT_OSC); на осике есть активность, с нет
zra123, для начала проверьте с другим кварцем.