|
|
|
|
23932 111 8 1 |
|
Опции темы | Поиск в этой теме |
03.09.2013, 14:38 | 21 |
Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24 Адрес: Украина, Полтава
Сообщений: 5774
Сказал(а) спасибо: 340
Поблагодарили: 8154 раз(а) в 2385 сообщениях
|
Re: Немного о программаторах AVR
Ну а суммарная скорость выхода диодов на режим одинаковая, или у тиньки значительно дольше это всё происходит? Проверять CLKPR не обязательно, можно просто ноль туда записать. Но если делитель на 8 отключен незапрограммированым фьюзом CKDIV8, то в этом необходимости нет...
Да и проверить частоту то можно банально секундомером и светодиодом на лапе. Главное знать что реально делает код, и написать программу дёргающую лапу через известное число тактов... [Исправлено: INFERION, 03.09.2013 в 14:46] |
03.09.2013, 14:42 | 22 |
|
Re: Немного о программаторах AVR
|
03.09.2013, 14:45 | 23 |
Ветеран Фонарёвки
Регистрация: 06.03.2013 Последняя активность: Сегодня 09:23 Адрес: Тамбов
Сообщений: 4793
Сказал(а) спасибо: 648
Поблагодарили: 1886 раз(а) в 1165 сообщениях
|
Re: Немного о программаторах AVR
|
03.09.2013, 14:46 | 24 |
|
Re: Немного о программаторах AVR
Mazafaka, ослик есть?
|
03.09.2013, 15:06 | 25 |
Увлеченный
Регистрация: 18.08.2013 Последняя активность: 29.11.2015 13:52
Сообщений: 442
Сказал(а) спасибо: 11
Поблагодарили: 23 раз(а) в 23 сообщениях
|
Re: Немного о программаторах AVR
|
03.09.2013, 15:09 | 26 | |
Увлеченный
Регистрация: 18.08.2013 Последняя активность: 29.11.2015 13:52
Сообщений: 442
Сказал(а) спасибо: 11
Поблагодарили: 23 раз(а) в 23 сообщениях
|
Re: Немного о программаторах AVR
Цитата:
Код сейчас скину, раз такая тема - он не сильно оптимален, конечно, но все же. Это управление дневным светом в машине - у меня одна лампа на ДРЛ и на поворотник. Чтобы не тянуть провод, который "говорит", что поворотник включен, будет стоять тайни, которая гасит ДРЛ при включении поворотника, а зажигает его через 2 сек после пропадания сигнала с поворотника же. |
|
03.09.2013, 15:15 | 27 |
Увлеченный
Регистрация: 18.08.2013 Последняя активность: 29.11.2015 13:52
Сообщений: 442
Сказал(а) спасибо: 11
Поблагодарили: 23 раз(а) в 23 сообщениях
|
Re: Немного о программаторах AVR
Код программы. Пробелы убрались...жесть..
Суть в том, что я хочу зажигать лампу красиво - постепенно. Это основной наворот. Тупо зажечь моментально не проблема. Сейчас понятно, что это надо делать в отдельном цикле. Я писал после вина, так что в этой редакции fadIn идет глупо, проходя полностью опять цикл. Но вопрос в том, что на Меге все работает идеально, а на тайни нет. Т.к. прерываниями пользоваться не умею, то засекаю время, за которое нужно зажечь лампу и примерно через равные промежутки инкрементирую яркость. Причем чтобы не промахнуться и из-за того, что я не знаю, сколько времени идет на такт, делаю формулу, где яркость зависит от прошедшего времени. const byte turnLightPin = 4, dimmerPin = 3, DRLpin = 0; byte fadeFactor = 255, overallBrightness = 100; unsigned long startTime = 0; boolean fadeIn = false; // Флаг того, что надо начинать "зажигание" #define MIN_LEVEL overallBrightness = 20 #define MAX_LEVEL overallBrightness = 100 void setup(){ pinMode(DRLpin, OUTPUT); } void loop(){ const int waitTime = 1000; // Pause before turning DRL ON unsigned int senseValue = 0; unsigned long timePeriod = 0; senseValue = digitalRead(turnLightPin); if(senseValue == HIGH) { fadeIn = false; analogWrite(DRLpin, 0); } else { if(fadeIn == false) { startTime = millis(); fadeIn = true; fadeFactor = 0; } else { timePeriod = millis() - startTime; if(timePeriod > waitTime) { if(digitalRead(dimmerPin) == HIGH) {MIN_LEVEL;} else {MAX_LEVEL;} { if(fadeFactor<(255*overallBrightness)/100) { fadeFactor = ((timePeriod-waitTime)*overallBrightness)/400; analogWrite(DRLpin, fadeFactor); } else { analogWrite(DRLpin, 255*overallBrightness/100); } } } } } } [Исправлено: KNNK07, 03.09.2013 в 15:18] |
03.09.2013, 15:20 | 28 |
Увлеченный
Регистрация: 18.08.2013 Последняя активность: 29.11.2015 13:52
Сообщений: 442
Сказал(а) спасибо: 11
Поблагодарили: 23 раз(а) в 23 сообщениях
|
Re: Немного о программаторах AVR
|
03.09.2013, 15:22 | 29 | |
Ветеран Фонарёвки
Регистрация: 08.10.2011 Последняя активность: 30.03.2024 21:54 Адрес: 哈尔滨
Сообщений: 8022
Сказал(а) спасибо: 934
Поблагодарили: 5193 раз(а) в 2784 сообщениях
|
Re: Немного о программаторах AVR
Цитата:
У меня тоже Arduino IDE. И фьюзы выставляю и шью в оболочке SinaProg (http://robocraft.ru/blog/10...). |
|
03.09.2013, 15:32 | 30 |
Увлеченный
Регистрация: 18.08.2013 Последняя активность: 29.11.2015 13:52
Сообщений: 442
Сказал(а) спасибо: 11
Поблагодарили: 23 раз(а) в 23 сообщениях
|
Re: Немного о программаторах AVR
A ATMEL studio 6 не шьет,к стати? Только компилирует?
Я его поставил, но чот у меня перегруз по кол-ву кнопок от нее случился Хотя раньше я программы писал и в Borland Builder и ничо |
03.09.2013, 15:34 | 31 |
|
Re: Немного о программаторах AVR
|
03.09.2013, 15:52 | 32 |
Увлеченный
Регистрация: 18.08.2013 Последняя активность: 29.11.2015 13:52
Сообщений: 442
Сказал(а) спасибо: 11
Поблагодарили: 23 раз(а) в 23 сообщениях
|
Re: Немного о программаторах AVR
Да, такой
|
03.09.2013, 17:17 | 33 |
Увлеченный
Регистрация: 18.08.2013 Последняя активность: 29.11.2015 13:52
Сообщений: 442
Сказал(а) спасибо: 11
Поблагодарили: 23 раз(а) в 23 сообщениях
|
Re: Немного о программаторах AVR
Я тут подумал
Фишка в том, что ступенчатое изменение яркости актуально, НО на этом-то PWM не кончается. То есть в процессе изменения яркости с 20% до 100% наблюдаем явную "лестницу", а как только яркость достигла нужного уроавня, дальше светит ок, то есть мерцания нет. Это говорит о том, что сам по себе PWM работает хорошо. Но вот алгоритм его изменения работает херовато - такое впечатление, что от 20% (значение 51) до 100% (значение 255) яркость изменяется не +1, как это в коде подразумевается, а +20 где-то или типа того. |
03.09.2013, 17:20 | 34 |
|
Re: Немного о программаторах AVR
Mazafaka,
Да, нет смысла делать каскад на транзисторе. Я вспомнил, в том случае когда это помогло проблемы были и на постоянной яркости. |
03.09.2013, 17:22 | 35 |
|
Re: Немного о программаторах AVR
|
03.09.2013, 18:37 | 36 |
Увлеченный
Регистрация: 18.08.2013 Последняя активность: 29.11.2015 13:52
Сообщений: 442
Сказал(а) спасибо: 11
Поблагодарили: 23 раз(а) в 23 сообщениях
|
Re: Немного о программаторах AVR
Предлагаю на "ты".
Уверен. Я ж математик как ни как Там условие в IF: fadeFactor<(255*overallBrightness)/100. overallBrightness/100 это целевой уровень яркости в % - она либо 0.2 либо 1. По сути - приглушенный свет, либо полный. waitTime это константа - 1 000. В итоге текущий уровень в пунктах это (timePeriod-waitTime)/4. Когда это конкретное значение достигнет 255, то "розжиг" прекратится. А значение достигнет 255, когда разница во времени будет 255*4 = 1020 миллисек. То есть получаем в итоге, что лампа зажигается 1.020сек. У меня вот только тут мысля - если это время будет "простреливать". Т.е. в рез-те вычислений будет получаться 256, то оно что будет класть реально в порт? Единицу? Если так, то есть подозрение, что ступенчатое изменение, видное мне, это как раз переполнение, которое заканчивается на физическом попадании в 255. Потому и моргает. Но с другой стороны, моргать тогда должно произвольно (и сильнее и слабее), но у меня ступенчатое повышение. |
03.09.2013, 18:40 | 37 |
Увлеченный
Регистрация: 18.08.2013 Последняя активность: 29.11.2015 13:52
Сообщений: 442
Сказал(а) спасибо: 11
Поблагодарили: 23 раз(а) в 23 сообщениях
|
Re: Немного о программаторах AVR
Я без понятия, т.к. не знаю, как их "использовать".
Я тот же код заливаю в Мегу. Таймеры все прописываются во фьюзах? Видимо, в hardware.txt? Для IDE. В Мегу я ни бутлоадер ни фьюзы не прописывал - все пришло из китая в прописанном состоянии, тут ХЗ. Но попробую посмотреть. |
03.09.2013, 18:40 | 38 |
|
Re: Немного о программаторах AVR
|
03.09.2013, 18:42 | 39 |
|
Re: Немного о программаторах AVR
|
03.09.2013, 18:44 | 40 |
Увлеченный
Регистрация: 18.08.2013 Последняя активность: 29.11.2015 13:52
Сообщений: 442
Сказал(а) спасибо: 11
Поблагодарили: 23 раз(а) в 23 сообщениях
|
Re: Немного о программаторах AVR
|