Обновитесь с гитхаба. Нумерация аналоговых пинов должна продолжать основные. Там был косяк - восстановления старой версии по ошибке. Сейчас уже убрано.
Вот, надо чтобы кто-то сделал и до конца проверил этот файл распиновки для 48p, 88p, 168p, 328p .. я его правил несколько раз, кое-что проверял со своей УНО 328p, и уже получил несколько разных замечаний по его распиновке .. или для разных моделей Ардуино плат (ПРО, МИНИ, НАНО, УНО) надо делать свой такой отдельный файл или как? Может кто-нибудь показать ГДЕ взять корректные распальцовки этих плат и чем они отличаются друг от друга? Часто процессор один и тот же .. а "пожелания" разнятся .. могу предположить, что из-за разной распальцовки самих плат. Но у меня есть только УНО .. моя НАНО до меня так и не дошла, вернуть бабки не "успел" (протормозил тогда по незнанию как эти споры обостряются) .. закупать что-то для развития этого файла - только на "пожертвования" .. их приток последнее время сдулся, хотя на гитхабе вижу примерно по 25 посещений в сутки. Видимо "кризис". :)
В принципе, есть также Nano и Mega. На последней, я так понимаю, проверять не нужно, а на Nano могу при случае проверить.
Но, судя по рисункам, у всех трех: Uno, Nano, Pro Muni распиновка совпадает.
Да, и еще: судя по тем же рисункам и таблицам, A6 и A7, присутствующие в Nano и Pro Mini, на порты не проецируются, поэтому в файлах являются лишними строчки не только с суффиксами "22", но также "20" и "21".
Наконец-то дошли ручки и разобрался. На самом деле описание 328p я делал по даташиту, имея какую-то картинку для УНО перед глазами .. их полно в Сети. Нумерация пинов 14,15,16 - сделана на ноги, которые у дунек как-бы "не подключены" .. это XTAL1, XTAL2 и RESET .. они заняты. Теоретически даташит вроде как не запрещает их управление из программ и поэтому они у меня попали в файл.
А поскольку нумерация аналоговых ножек по идее должна продолжать обстальные, то аналоги и были выведены на 18..22.
В общем поправил гитхаб таким образом: основные ножки завершаются номером 13, каковой и есть последний у дунек. 14..19 - номера аналоговых входов, подчистил. Номера 20,21,22 - теперь относятся к "расширенной части": XTAL1, XTAL2 и RESET соответственно. Вдруг кто-то их таки юзает каким-то боком ..
P.S. можно было ничего не менять, а просто пользоваться макроопределениями номеров ножек .. ничего бы не поменялось.
P.P.S На какие порты и каких регистров подключены выводы A6,A7 я так и не понял .. в даташите на 328p ничего нет по этому поводу.. или я не нашел.
P.P.S На какие порты и каких регистров подключены выводы A6,A7 я так и не понял .. в даташите на 328p ничего нет по этому поводу.. или я не нашел.
Или не нашёл. На стр. 252 чёрным по белому написано "ADC pins ADC7 and ADC6 do not have digital input buffers". Т.е. работать цифровыми они не умеют и ни к какому цифровому порту не подключены. Они чисто аналоговые. mux - 110 и 111 соответсвенно.
По здравому размышлению и после последних срачей, я таки принял решение покинуть местное сообщество. Дальнейшего развития этой библиотеки далее не будет, скажем не планируется.
По причинам: не вижу смысла что-либо делать в имеющихся условиях "де факто" (помощи не дождался ни разу; при 20-25 ежедневных посещениях гитхаба поимел тут кучу поливаний меня грязью .. нафиг оно мне? Ну и ребенок уже вполне программирует сам и не нуждается в развитии библиотеки, а мне оно уже не интересно.
Так что, если что-то где-то надо подправить - пишите на мыло. Но, врядли буду делать, ибо есть иные задачи...
Compiling 'MAGIC_light' for 'Arduino Mini w/ ATmega328'
MAGIC_light.ino:In function 'void loop()'
arhat.h:563:44: error: 'adc_read' was not declared in this scope
MAGIC_light.ino:in expansion of macro 'analogRead'
Error compiling
Сам код:
#define _ARHAT_
#include <C:\Program Files (x86)\Arduino\libraries\ARHAT_H-master\arhat.h>
#define blinkWait 150
void blink13(uint8_t wait) // моргалка встроенным светодиодом
{
digitalWrite(pinLed, HIGH);
delay(wait);
digitalWrite(pinLed, LOW);
delay(wait);
}
void setup()
{
/* add setup code here */
adcOn(); // включаем АЦП (ADC)
pinMode(pinLed, OUTPUT); // 13 ножка "на выход"
pwmSet(pin5); // 44 ножка - управление яркостью
}
void loop()
{
/* add main program code here */
uint16_t readedVoltage;
readedVoltage = analogRead(Analog0); // читаем напряжение на регуляторе [0..1023]
analogWrite(pin5, readedVoltage/4 ); // уменьшаем его до диапазона [0..255] и устанавливаем как яркость.
blink13(150); // контрольная моргалка "код работает".
}
<sensored>
Пока не разобрался, но, похоже, какие-то глюки с pinOut() для пина 14 (т.е. A0, но обращение как к 14) для 328. Завтра посмотрю подробнее.
Всех с праздником!
Обновитесь с гитхаба. Нумерация аналоговых пинов должна продолжать основные. Там был косяк - восстановления старой версии по ошибке. Сейчас уже убрано.
Повторно скачал архив, но там - один в один, что и раньше.
Посмотрел пинаут, заменил:
#define OREG14 PORTB
#define OREG15 PORTB
#define BSET14 SET_MASK_6
#define BCLR14 CLR_MASK_6
#define BSET15 SET_MASK_7
#define BCLR15 CLR_MASK_7
#define BSET16 SET_MASK_6
#define BCLR16 CLR_MASK_6
#define BSET17 SET_MASK_0
#define BCLR17 CLR_MASK_0
#define BSET18 SET_MASK_1
#define BCLR18 CLR_MASK_1
#define BSET19 SET_MASK_2
#define BCLR19 CLR_MASK_2
на:
#define OREG14 PORTC
#define OREG15 PORTC
#define BSET14 SET_MASK_0
#define BCLR14 CLR_MASK_0
#define BSET15 SET_MASK_1
#define BCLR15 CLR_MASK_1
#define BSET16 SET_MASK_2
#define BCLR16 CLR_MASK_2
#define BSET17 SET_MASK_3
#define BCLR17 CLR_MASK_3
#define BSET18 SET_MASK_4
#define BCLR18 CLR_MASK_4
#define BSET19 SET_MASK_5
#define BCLR19 CLR_MASK_5
Кстати, обнаружил в файле и такие строчки:
#define OREG22 PORTC
#define BSET22 SET_MASK_5
#define BCLR22 CLR_MASK_5
Мне кажется, они лишние.
Вот, надо чтобы кто-то сделал и до конца проверил этот файл распиновки для 48p, 88p, 168p, 328p .. я его правил несколько раз, кое-что проверял со своей УНО 328p, и уже получил несколько разных замечаний по его распиновке .. или для разных моделей Ардуино плат (ПРО, МИНИ, НАНО, УНО) надо делать свой такой отдельный файл или как? Может кто-нибудь показать ГДЕ взять корректные распальцовки этих плат и чем они отличаются друг от друга? Часто процессор один и тот же .. а "пожелания" разнятся .. могу предположить, что из-за разной распальцовки самих плат. Но у меня есть только УНО .. моя НАНО до меня так и не дошла, вернуть бабки не "успел" (протормозил тогда по незнанию как эти споры обостряются) .. закупать что-то для развития этого файла - только на "пожертвования" .. их приток последнее время сдулся, хотя на гитхабе вижу примерно по 25 посещений в сутки. Видимо "кризис". :)
Лично я, не долго думая, брал информацию отсюда: http://arduino.ru/forum/obshchii/pin-mapping-sootvetstvie-vyvodov-i-registrov
У меня сошлось.
После отладки залью в Pro Mini - проверю на ней.
В принципе, есть также Nano и Mega. На последней, я так понимаю, проверять не нужно, а на Nano могу при случае проверить.
Но, судя по рисункам, у всех трех: Uno, Nano, Pro Muni распиновка совпадает.
Да, и еще: судя по тем же рисункам и таблицам, A6 и A7, присутствующие в Nano и Pro Mini, на порты не проецируются, поэтому в файлах являются лишними строчки не только с суффиксами "22", но также "20" и "21".
Наконец-то дошли ручки и разобрался. На самом деле описание 328p я делал по даташиту, имея какую-то картинку для УНО перед глазами .. их полно в Сети. Нумерация пинов 14,15,16 - сделана на ноги, которые у дунек как-бы "не подключены" .. это XTAL1, XTAL2 и RESET .. они заняты. Теоретически даташит вроде как не запрещает их управление из программ и поэтому они у меня попали в файл.
А поскольку нумерация аналоговых ножек по идее должна продолжать обстальные, то аналоги и были выведены на 18..22.
В общем поправил гитхаб таким образом: основные ножки завершаются номером 13, каковой и есть последний у дунек. 14..19 - номера аналоговых входов, подчистил. Номера 20,21,22 - теперь относятся к "расширенной части": XTAL1, XTAL2 и RESET соответственно. Вдруг кто-то их таки юзает каким-то боком ..
P.S. можно было ничего не менять, а просто пользоваться макроопределениями номеров ножек .. ничего бы не поменялось.
P.P.S На какие порты и каких регистров подключены выводы A6,A7 я так и не понял .. в даташите на 328p ничего нет по этому поводу.. или я не нашел.
A6 и A7 можно использовать только как ADC6 и ADC7 (в ADMUXе)
P.P.S На какие порты и каких регистров подключены выводы A6,A7 я так и не понял .. в даташите на 328p ничего нет по этому поводу.. или я не нашел.
Или не нашёл. На стр. 252 чёрным по белому написано "ADC pins ADC7 and ADC6 do not have digital input buffers". Т.е. работать цифровыми они не умеют и ни к какому цифровому порту не подключены. Они чисто аналоговые. mux - 110 и 111 соответсвенно.
Yarik.Yar, Спасибо. То есть я правильно решил что никаких дополнительных описаний в виде AnalogA6, они не требуют. Меня этот вопрос тогда беспокоил.
Отредактировано Yarik.Yar, 19.05.2016, 17:54: Давайте-ка без обзывательств.
Спасибо что отредактировали.
По здравому размышлению и после последних срачей, я таки принял решение покинуть местное сообщество. Дальнейшего развития этой библиотеки далее не будет, скажем не планируется.
По причинам: не вижу смысла что-либо делать в имеющихся условиях "де факто" (помощи не дождался ни разу; при 20-25 ежедневных посещениях гитхаба поимел тут кучу поливаний меня грязью .. нафиг оно мне? Ну и ребенок уже вполне программирует сам и не нуждается в развитии библиотеки, а мне оно уже не интересно.
Так что, если что-то где-то надо подправить - пишите на мыло. Но, врядли буду делать, ибо есть иные задачи...
Всем, До свидания.
До свидания, удачи!
Пака, пака...
Досвидания, спасибо!
Народ, помогите, не могу откомпилировать пример:
Сам код:
Файл arhat.h, строка 563 должна выглядеть так:
надо бы поправить.
Попробовал подчистить "свою" тему в рамках эксперимента .. блин, "не так всё пгосто оказывается"!
Ага, по посту за раз удалять..
почему нет хаба на гитхабе ?
404 страница
почему нет хаба на гитхабе ?
Спросите у ТС. Он сейчас околачивается на форуме гивера.