gogaze

Members
  • Публикации

    15
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

О gogaze

  • Звание
    Новенький

Информация

  • Город
    Фокино, Приморский край

Электроника

  • Стаж в электронике
    Менее года
  • Сфера радиоэлектроники
    Питание с управлением на МК
  • Оборудование
    Lukey825D, Victor6013, VictorVC97, Instrustar ISDS205A
  1. Я тоже уже ночью победил! Снес все рекомендуемые настройки по Float, посмотрел, как у меня в КодеВижен было, сделал и прокатило. Вырезку из майна прикреплю, разницу между моим и твоим вариантом увидишь. У тебя конечно правильнее и нагляднее. В очередной раз ОГРОМНОЕ спасибо за помощь! Вырезка из main.txt P.S. Теперь только с дефолтными настройками Studio непонятно - получается, что операции с плавающей точкой включены по умолчанию?
  2. Так я вроде так и делал по твоей шпаргалке. А с настройками проекта то как быть?
  3. #define F_CPU 8000000 #include <avr/io.h> #include <util/delay.h> #include "n5110.h" #include <stdlib.h> //#include "n5110.c" void presets() { Lcd_init(); //Настройки АЦП //ADCSRA ADCSRA |= (1<<ADEN) //Включить АЦП | (1<<ADPS2) | (1<<ADPS1) | (0<<ADPS0); //Делитель 64= 128 кГц //ADMUX ADMUX |=(0<<REFS1)|(1<<REFS0); //Опорное напряжение AVcc +5v } 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; case 3: set_admux |= ((0<<MUX3) | (0<<MUX2) | (1<<MUX1) | (1<<MUX0));break; default:break; } ADMUX = set_admux; _delay_us(10); int tmp = 0; for (int i=0;i<20;i++) { ADCSRA |= (1<<ADSC); //Запуск преобразования while ((ADCSRA &(1<<ADSC))); //Ждем окончания tmp += ADCW; //tmp = tmp + ADC } return tmp/20; } //float U, I, Ist; Вот на это ругается, что конфликт //U =((readADC(0)*20.00/1023),1); А про это - что это не константа int main(void) { presets(); Lcd_clear(); Lcd_prints (0,0,FONT_1X,(unsigned char*)PSTR(" Амперметр")); Lcd_prints (0,1,FONT_1X,(unsigned char*)PSTR(" вольтметр")); Lcd_prints (0,2,FONT_1X,(unsigned char*)PSTR(" постоянного")); Lcd_prints (0,3,FONT_1X,(unsigned char*)PSTR(" тока")); Lcd_prints (0,4,FONT_1X,(unsigned char*)PSTR(" U = 0.0-20 v")); Lcd_prints (0,5,FONT_1X,(unsigned char*)PSTR("Iст.= 0.2-15 a")); Lcd_update(); _delay_ms(2000); while (1) { Lcd_clear(); //Вольты Lcd_printf (0,1,FONT_2X,(readADC(0)*20.00/1023),1); Lcd_prints (5,1,FONT_1X,(unsigned char*)PSTR("V")); //Текущий ток Lcd_printf (0,3,FONT_2X,(readADC(2)*10.00/1023),1); Lcd_prints (5,3,FONT_1X,(unsigned char*)PSTR("А")); //Ток стабилизации Lcd_printf (0,5,FONT_2X,(readADC(1)*10.00/1023),1); Lcd_prints (5,5,FONT_1X,(unsigned char*)PSTR("As")); //Омы Lcd_printf (9,0,FONT_1X,((readADC(0)*20.00/1023)/(readADC(2)*10.00/1023)),1); Lcd_prints (15,0,FONT_1X,(unsigned char*)PSTR("{")); //Температура Lcd_printf (9,1,FONT_1X,(((readADC(3)*5.00*200*(3.73/5.00))/1023)-273.15),0); Lcd_prints (15,1,FONT_1X,(unsigned char*)PSTR(" }")); Lcd_update(); _delay_ms(200); } } Вот как ругается компилятор: Серьезность Код Описание Проект Файл Строка Ошибка recipe for target 'main.o' failed FIN_5110 C:\Users\ADMIN\Desktop\FIN_5110\Atmel\FIN_5110\FIN_5110\Debug\Makefile 86 Ошибка conflicting types for 'U' FIN_5110 C:\Users\ADMIN\Desktop\FIN_5110\Atmel\FIN_5110\FIN_5110\main.c 51 Ошибка initializer element is not constant FIN_5110 C:\Users\ADMIN\Desktop\FIN_5110\Atmel\FIN_5110\FIN_5110\main.c 51 Предупреждение type defaults to 'int' in declaration of 'U' [-Wimplicit-int] FIN_5110 C:\Users\ADMIN\Desktop\FIN_5110\Atmel\FIN_5110\FIN_5110\main.c 51 Предупреждение data definition has no type or storage class FIN_5110 C:\Users\ADMIN\Desktop\FIN_5110\Atmel\FIN_5110\FIN_5110\main.c 51 Вот это я пробовал https://startingelectronics.org/articles/atmel-AVR-8-bit/print-float-atmel-studio-7/ Это тоже http://reason89.ru/2016/05/lcd-wh1602.html
  4. Уважаемый @Berg! Снова обращаюсь с проблемой. Хотел сделать как у тебя float napryazh, tok, soprotivl; // объявляем глобально (перед функцией main) napryazh =((readADC(1)*2.56*(30/2.56))/1023); tok =((readADC(2)*2.56*(6/2.56))/1023); Для большего удобства в введении дополнительных функций, но проект не стал компилироваться - ошибки типа "конфликт tok," и "tok =((readADC(2)*2.56*(6/2.56))/1023);" не константа. В CVAVR это решалось установкой одной галочки "float, width, precision" в свойствах проекта. А в Atmel studio 7 ни как не получается. Все, что нашел в инете перепробовал - ни в какую!
  5. С размещением показаний на дисплее немного разобрался (скрин1) Идею я понял, спасибо, буду иметь ввиду. Ну там же еще много факторов, которые на это влияют: и конфигурация неиспользуемых портов, и разводка печатной платы, и размещение деталей на ней. С этим я уже сталкивался, когда делал "показометр" для переделанного в лабораторный БП АТХ. Только делал в CVAVR на дисплее 1602. Нормально получилось. (скрин2) 100% согласен! Но до изучения таймеров ни как пока не дойду (со мной внуков трое:4, 6 и 8 лет - особо не разгуляешься). Еще раз спасибо тебе за полезные советы!
  6. Воспользовался твоими рекомендациями, спасибо за реальную помощь!!! Если я правильно понял мы немного изменили отображение шрифта FONT_2X? Поэкспериментировал, в протеусе получилось так, как на скрине. Пока не до конца разобрался с позиционированием "правого" столбца. Выводил так: //Вольты Lcd_printf (0,1,FONT_2X,(readADC(0)*20.00/1023),1); Lcd_prints (5,1,FONT_1X,(unsigned char*)PSTR("V")); //Ток стабилизации Lcd_printf (0,3,FONT_2X,(readADC(1)*10.00/1023),1); Lcd_prints (5,3,FONT_1X,(unsigned char*)PSTR("As")); //Текущий ток Lcd_printf (0,5,FONT_2X,(readADC(2)*10.00/1023),1); Lcd_prints (5,5,FONT_1X,(unsigned char*)PSTR("А")); //Омы Lcd_printf (9,0,FONT_1X,((readADC(0)*20.00/1023)/(readADC(2)*10.00/1023)),1); Lcd_prints (15,0,FONT_1X,(unsigned char*)PSTR("{")); Lcd_update();
  7. Огромное спасибо за попытку помочь! Пока наверняка понял только то, что мне еще читать и читать, пробовать и пробовать, чтобы осмыслить и понять! Еще раз спасибо!!!
  8. Жалко, что тема видимо скоро совсем умрет! А как хотелось бы на основе полученных знаний сделать какой-либо блок питания с многофункциональным дисплеем, чтобы он кроме своей точности еще и выглядел стильно!!! Типа такого. Нашел библиотеку со шрифтами (симпатичными), и пока застопорился с их использованием в моем "показометре". NokiaDisplay.zip
  9. Тестер компонентов и ESR-метр MG328

    какой быстрее?
  10. Тестер компонентов и ESR-метр MG328

    Тоже такой приобрел сегодня. Сразу возник вопрос - какая версия прошивки в нем установлена? Как узнать? В меню ссылки на версию прошивки нет, продавец на Али молчит. Другие тестеры при включении показывают версию firmware. Может кто знает как?
  11. Друг дорогой!!! Если у тебя М1104 с документами, пожалуйста сделай скан хотя бы схемы! Очень нужно!!!
  12. Мир не без добрых людей!

  13. 110Кт1А Микросхема

    Старость не радость! Перекрутил цифры - 101кт1а. Извиняюсь и огромное спасибо!
  14. Помогите плз с описанием, назначением, аналогами данного зверя. Спасибо заранее!
  15. Помогите Со Схемой Поверки

    Я как раз из такой конторы. Принесли приборы, а ни одного паспорта нет, чтобы хоть ГОСТ прочитать.