gogaze Опубликовано 19 августа, 2018 Поделиться Опубликовано 19 августа, 2018 А поподрорбней весь код можно посмотреть? 0 Мир не без добрых людей! Ссылка на комментарий Поделиться на другие сайты Поделиться
aleksandr_m328 Опубликовано 20 августа, 2018 Поделиться Опубликовано 20 августа, 2018 23 часа назад, gogaze сказал: А поподрорбней весь код можно посмотреть? В 07.04.2014 в 17:03, kobzar сказал: Браво! Вот ето подход! Доброго дня! я конечно понимаю что максимальное кол-во ошибок при написании кода это ошибки того кто пишит... вот код.. #include <avr/io.h> #define F_CPU 10000000ul //#define F_CPU 1000000ul //***************** //************ #include <util/delay.h> void preset() { DDRB=0xFF; PORTB=0x00; } void led_on() { PORTB=0xFF; _delay_ms(100); } void led_off() { PORTB=0x00; _delay_ms (100); } int main(void) { /* основной цикл */ preset(); while (1) { led_on(); led_off(); } } при симуляции открывается файл библиотеки delay.h и курсор указывает на строку 187 в ней значение __builtin_avr_delay_cycles(__ticks_dc); от Вашего урока отличается тем что я использую 7 студию в 6 студии не смог включить симуляцию. Спасибо! 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
20% скидка на весь каталог электронных компонентов в ТМ Электроникс!Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!Перейти на страницу акции Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
Alex Опубликовано 20 августа, 2018 Поделиться Опубликовано 20 августа, 2018 А зачем Вы заходите внутрь функций задержек ? Я не знаю, как в Atmel Studio, но в нормальных IDE должно быть несколько вариантов шагания по коду, включая перешагивание функций. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
snn_krs Опубликовано 20 августа, 2018 Поделиться Опубликовано 20 августа, 2018 Похоже в 7-й версии плохо симулируется эта функция. Попробуйте в самое начало файла записать такую строку. #define __DELAY_BACKWARD_COMPATIBLE__ это описано в файле delay.h перед функцией void _delay_ms(double __ms) 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
aleksandr_m328 Опубликовано 22 августа, 2018 Поделиться Опубликовано 22 августа, 2018 Доброго дня! не помогло и как итог всех действий буду переставлять винду и на голый win7 поставлю студию и посмотрю что получится что касается вопроса % А зачем Вы заходите внутрь функций задержек ?% то я туда и не захожу туда студия закидывает и останавливается как вариант что-то в системе есть лишнее или не хватает.Потому как до студии чего-то ставилось и удалялось вероятнее всего что не всего что не все удаляется и хвосты могут влиять на работу проги поэтому формат /С:/ и не должно быть последствий... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
snn_krs Опубликовано 22 августа, 2018 Поделиться Опубликовано 22 августа, 2018 1 hour ago, aleksandr_m328 said: на голый win7 поставлю студию и посмотрю что получится Думаю получится то, что уже получилось. Если хотите не попадать в функцию задержки, то ставьте точку останава на команду следующую за _delay_ms() и запускайте на выполнение ( не в пошаговом режиме ). 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
aleksandr_m328 Опубликовано 22 августа, 2018 Поделиться Опубликовано 22 августа, 2018 Доброго дня! Моя надежда не сбылась!!! Опять то-же самое. С точкой остановки тоже вроде как не работает (как я думаю) в архиве скрины (то сообщение после прогона по точке останова вдруг поможет определить где ошибка) код который пытаю.Я вероятно просто не вижу ошибку типа я пишу и потому это правильно.. Спасибо! wrk.zip 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex Опубликовано 22 августа, 2018 Поделиться Опубликовано 22 августа, 2018 Брекпоинт нужно ставить на существующую инструкцию, а не на пустоту. Как по-вашему программа может остановиться на "пустоте" ? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Berg Опубликовано 22 августа, 2018 Поделиться Опубликовано 22 августа, 2018 (изменено) закомментируйте строки с _delay или отключите оптимизацию и перешагивайте F10 (шаг с обходом) Simulator - Toolchain - Optimization - Optimization Level: None (-o0) Кстати если нажимать то Play то Pause вы постоянно оказываетесь в функции delay и думаете что что-то не работает, однако есть шанс один из несколько миллионов, что вы остановитесь в основной программе. Ваш код, изменение состояния портов выполняется за несколько тактов, все остальное время программа висит в delay. Изменено 22 августа, 2018 пользователем Berg 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
aleksandr_m328 Опубликовано 22 августа, 2018 Поделиться Опубликовано 22 августа, 2018 Доброго дня! Потому как мои действия в итоге не дали положительного результата т.е. как я понял у меня не правильно работает симуляция с библиотекой "delay" или банальнее где - то стоит галочка в настройках или не в том месте и поэтому чтобы не крутить гайки а потом думать что получилось реши от смотреть первые видио ну поискать еще инфу без дебагера (симулятора) можно работать есть железо есть протеус... Вопрос не тему моно ли заменить каркас для кода (добавить свои ) **Анек ... про ремонтеров наверное слышали. Спасибо! 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
aleksandr_m328 Опубликовано 24 августа, 2018 Поделиться Опубликовано 24 августа, 2018 Доброго дня! Все что пока выяснил это-то что нормально не хочет работать {Debug_er} (не нашел внятного описания) в протеус_е диоды мигают а значит можно работать подключу программатор к студии и начну юзать. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
кое-кто Опубликовано 27 августа, 2018 Поделиться Опубликовано 27 августа, 2018 Что-то не работает библиотека для nokia3310 от COKPOWEHEU.Перепробовал множество проектов в т.ч. примеры ,скачанные вместе с библиотекой.Всегда выдает одно 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
gogaze Опубликовано 27 августа, 2018 Поделиться Опубликовано 27 августа, 2018 (изменено) В 24.08.2018 в 16:47, aleksandr_m328 сказал: Все что пока выяснил это-то что нормально не хочет работать {Debug_er} Вот нашел для Вас. https://www.avrfreaks.net/forum/delayms-hangs-avr-simulator А если коротко, то отлаживая программу в том виде, которая есть, мы просто не можем дождаться, когда симулятор досчитает до конца. В качестве доказательства - замените задержку на 1ms (_delay_ms(1);) и увидите результат. Это только для проверки в отладчике! #define F_CPU 10000000ul я бы установил правильную частоту 8000000 и в Протеусе в свойствах контроллера поставил ее же. Попробуйте так Скрытый текст #include <avr/io.h> #define F_CPU 8000000 #include <util/delay.h> void preset() { DDRB=0xFF; PORTB=0x00; } void led_on() { PORTB=0xFF; //_delay_ms(1000); _delay_ms(1); } void led_off() { PORTB=0x00; //_delay_ms (1000); _delay_ms(1); } int main(void) { /* Replace with your application code */ preset(); while (1) { led_on(); led_off(); } } Изменено 27 августа, 2018 пользователем gogaze Добавление информации 0 Мир не без добрых людей! Ссылка на комментарий Поделиться на другие сайты Поделиться
gogaze Опубликовано 27 августа, 2018 Поделиться Опубликовано 27 августа, 2018 (изменено) 1 час назад, кое-кто сказал: Что-то не работает библиотека для nokia3310 от COKPOWEHEU.Перепробовал множество проектов в т.ч. примеры ,скачанные вместе с библиотекой.Всегда выдает одно А поподробнее! Как объявлены библиотеки в заголовке? Где находятся сами файлы? Изменено 27 августа, 2018 пользователем gogaze 0 Мир не без добрых людей! Ссылка на комментарий Поделиться на другие сайты Поделиться
кое-кто Опубликовано 27 августа, 2018 Поделиться Опубликовано 27 августа, 2018 Что-то не работает библиотека для nokia3310 от COKPOWEHEU.Перепробовал множество проектов в т.ч. Всё,разобрался уже.Оказывается надо было добавить файл lcd_chars.inc!!Об этом никто никогда не писал.И что это за файл? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
COKPOWEHEU Опубликовано 27 августа, 2018 Поделиться Опубликовано 27 августа, 2018 5 часов назад, кое-кто сказал: Всегда выдает одно там написано "не могу найти lcd_chars.inc". Этот файл должен находиться рядом с остальными исходниками. Ну либо прописать путь к нему в makefile. Ну и традиционный совет не использовать в путях к файлам и именах что-либо кроме латиницы. 0 Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз. Часть моих наработок. Ссылка на комментарий Поделиться на другие сайты Поделиться
aleksandr_m328 Опубликовано 29 августа, 2018 Поделиться Опубликовано 29 августа, 2018 Доброго дня! Спасибо за помощь! Да я понял что это ошибка симулятора камень то работает и это т код ---_delay_ms(1);-- тоже выкинул студию в ошибку возможно какие-то настройки надо прописать в студии ..да и симулятор для меня сейчас не актуален есть протеус и видел онлайн отладчик или нечто подобное просто внимание не обратил когда видел если что можно просто поискать.. пока занимался студией прописал в ней программатор (usbasp) стало чуток удобнее есть кнопка с наименованием камня сейчас это мега 8 хуже другое придется делать кнопки под каждый камень.плюс очевиден не нужно выходить из студии для вызова внешней проги для прошивки камня. так что пока пропишу кнопки и проверю на те камни что у меня есть пусть пока это будут мигалки но как задел будет не плохой. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
gogaze Опубликовано 29 августа, 2018 Поделиться Опубликовано 29 августа, 2018 (изменено) 8 часов назад, aleksandr_m328 сказал: Да я понял что это ошибка симулятора камень то работает и это т код ---_delay_ms(1);-- тоже выкинул студию в ошибку Вот не поленился сделать видео на 2 минуты, без комментариев, и так все понятно - сначала задержка 1ms потом 100us. Обратите внимание на разницу во времени обработки задержки. Я на 100% не уверен, но может быть время еще зависит от мощности компьютера. У меня i5 четырехядерный. https://yadi.sk/i/jTJ9722G3agMYM Изменено 29 августа, 2018 пользователем gogaze Ссылка на видео 0 Мир не без добрых людей! Ссылка на комментарий Поделиться на другие сайты Поделиться
aleksandr_m328 Опубликовано 30 августа, 2018 Поделиться Опубликовано 30 августа, 2018 значит это не ошибка ... у Вас симулятор ведет так-же как и меня (это я решил) что это ошибка. ну тогда у меня все нормально со студией(искал то чего в принципе нет) за то почитал .....по теме.(это не PHP) 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Neophyte Опубликовано 26 июля, 2019 Поделиться Опубликовано 26 июля, 2019 Спасибо за ценную информацию! 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Taras Molchanov Опубликовано 7 февраля, 2020 Поделиться Опубликовано 7 февраля, 2020 (изменено) Добрый день собрал! пример из урока (в уроке atmega8A)nokia5110 и atmega328p экран пуст ничего не выводит, загорается подсветка, иногда бывает на весь экран выводит темный квадрат, в протеусе все работает? почему так может быть порты SPI на atmega8A и на 328р одинаковы, в хидере n5110.h порты совпадают. Реализован только один вольтметр. Добавил мигание светодиода что бы понимать что контроллер работает и зашит(мигает) #define F_CPU 8000000 #include <avr/io.h> #include <util/delay.h> #include <stdlib.h> #include "n5110.h" #define HIGH 0xFF #define LOW 0x00 void presets() { DDRD = HIGH; PORTD = LOW; Lcd_init(); // Lcd_clear(); //Config ADCSRA ADCSRA|=(1<<ADEN) //задействовать АЦП |(1<<ADPS2)|(1<<ADPS1)|(0<<ADPS0);//делитель на 128=64кГц //ADMUX ADMUX|=(1<<REFS1)|(1<<REFS0); //Опорное напряжение 1.1 В внутренее } int readADC(unsigned int ch) { unsigned char set_admux= ADMUX; set_admux &= ~((1<<MUX3) | (1<<MUX2) | (1<<MUX1) | (1<<MUX0)); switch(ch) { case 1:set_admux |=((0<<MUX3) | (0<<MUX2) | (0<<MUX1) | (1<<MUX0)); break; //case 2:set_admux |=((0<<MUX3) | (0<<MUX2) | (1<<MUX1) | (0<<MUX0)); //break; default:break; } ADMUX=set_admux; _delay_us(10); unsigned int tmp=0; ADCSRA|=(1<<ADSC); while (ADCSRA&(1<<ADSC)); tmp=(ADCL|ADCH<<8); return tmp; } int main(void) { presets(); /* Replace with your application code */ while (1) { Lcd_clear(); Lcd_print(0,4,FONT_1X, (unsigned char *)('a')); Lcd_printf(0,0, FONT_1X, readADC(0),1); Lcd_printf(0,1,FONT_1X,(readADC(0)*30)/1023,1); Lcd_printf(0,2, FONT_1X, readADC(1),1); Lcd_printf(0,3,FONT_1X,(readADC(1)*30)/1023,1); Lcd_update(); _delay_ms(100); PORTD=(1<<PIND7); _delay_ms(200); PORTD=(0<<PIND7); } } //_N5110_H_ // Порт к которому подключен LCD (здесь пример распиновки для ATmega8A) // Библиотека использует аппаратный SPI, поэтому если хотите иной порт - придется реализовать SPI программно) #define LCD_PORT PORTB #define LCD_DDR DDRB // Распиновка порта #define LCD_DC_PIN PB1 // DC #define LCD_CE_PIN PB2 // SCE #define SPI_MOSI_PIN PB3 // SDIN #define LCD_RST_PIN PB4 // RESET #define SPI_CLK_PIN PB5 // SCLK Изменено 7 февраля, 2020 пользователем Taras Molchanov 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Starichok Опубликовано 8 февраля, 2020 Поделиться Опубликовано 8 февраля, 2020 20 часов назад, Taras Molchanov сказал: Добрый день собрал! поздравляю! собрать добрый день - большое достижение... 0 Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду. Ссылка на комментарий Поделиться на другие сайты Поделиться
Taras Molchanov Опубликовано 8 февраля, 2020 Поделиться Опубликовано 8 февраля, 2020 55 минут назад, Starichok сказал: поздравляю! собрать добрый день - большое достижение... отлично)) а дальше по проблеме есть мысли? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
alfa19 Опубликовано 7 мая, 2020 Поделиться Опубликовано 7 мая, 2020 (изменено) Прошу помочь с простенькой программкой для AVR Tiny13a (накидал в Code vision AVR 3.39b): /******************************************************* This program was created by the CodeWizardAVR V3.39b Chip type : ATtiny13A AVR Core Clock frequency: 9,600000 MHz Memory model : Tiny External RAM size : 0 Data Stack size : 16 *******************************************************/ #include <tiny13a.h> #include <delay.h> unsigned char v; interrupt [EXT_INT0] void ext_int0_isr(void) { v++; if(v==4)v=0; delay_ms (100); } void main(void) { DDRB=(1<<DDB5) | (1<<DDB4) | (1<<DDB3) | (1<<DDB2) | (0<<DDB1) | (0<<DDB0); PORTB=(0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (1<<PORTB1) | (1<<PORTB0); // External Interrupt(s) initialization // INT0: On // INT0 Mode: Low level // Interrupt on any change on pins PCINT0-5: Off GIMSK=(1<<INT0) | (0<<PCIE); MCUCR=(0<<ISC01) | (0<<ISC00); GIFR=(1<<INTF0) | (0<<PCIF); // Globally enable interrupts #asm("sei") while (1) { if(v==0) PORTB.2 = 0; PORTB.3 = 0; PORTB.4 = 0; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ if(v==1) PORTB.2 = 1; PORTB.3 = 0; PORTB.4 = 0; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ if(v==2) PORTB.2 = 0; PORTB.3 = 1; PORTB.4 = 0; \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ if(v==3) PORTB.2 = 0; PORTB.3 = 0; PORTB.4 = 1; } } Проект в proteus 8 (в прикрепленном rar) представляет управление с помощью контроллера одной кнопкой тремя светодиодами по очереди. Т.е. в исходном состоянии порты со светодиодами PB2, PB3, PB4 - низкий уровень. К PB0 ничего не подключено. Кнопка на PB1, второй конец на землю. При 1 нажатии загорается и горит PB2, при втором нажатии PB2 тухнет, зажигается PB3, при третьем - тухнет PB3 и загорается PB4, при четвертом - все порты со светодиодами выключаются. И по кругу. При запуске в Протеусе начинают подмаргивать PB3, PB4. При первом нажатии PB2 загорается, при втором моргают PB3, PB4. test 2 one click.rar Изменено 8 мая, 2020 пользователем Falconist 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость shindax Опубликовано 8 мая, 2020 Поделиться Опубликовано 8 мая, 2020 Вы про инструкцию if в языке С хоть что-то читали? Как оформляются блоки кода знаете??? Вряд-ли... Возможно, Вам стОит переписать код так? if(v==3) { PORTB.2 = 0; PORTB.3 = 0; PORTB.4 = 1; } 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.