Jump to content

Recommended Posts

может быть и функции для работы с дисплеем другие.

инициализация у вас для 8/2 дисплея а используется в протеусе 16/2.

Я делаю все CodeVisionAVR Evaluation и я не знаю как смотреть какая инициализация и как делать по другому.

Если убрать функцию lcd_gotoxy, то время и дата выводиться нормально, на первой строчки по очередности с заданным интервалом delay_ms(450);

Как все это делать я брал с этого сайта http://cavr.ru/obuchenie-novichkov/23-urok-15-podklyuchaem-k-atmega-chasy-realnogo-vremeni-na-ds-1307

Edited by Смит

Share this post


Link to post
Share on other sites

задавай в качестве у ноль а к х прибавляй номер строки

1 строка - 0x00

2 строка - 0x40

3 строка - 0x10

4 строка - 0x50

для четырехстрочного и

1 строка - 0x00

2 строка - 0x40

для двустрочного

Share this post


Link to post
Share on other sites

Руководство для разработчика приложений на базе STM32WB55

Представив двухъядерные беспроводные микроконтроллеры STM32WB для IoT-приложений, компания STMicroelectronics предлагает разработчикам экосистему, включающую в себя отладочные платы, примеры кода для микроконтроллера, готовое ПО всех уровней и большой массив документации.

Читать статью

lcd_gotoxy(0,0); второй аргумент оставляем нулевым, к первому прибавляем код строки. Вообще говоря в HD44780 адресация линейная, то есть сам дисплей не знает что он многострочный.

Share this post


Link to post
Share on other sites
                     

Контроль в спящем режиме: повышение КПД батарейного питания с помощью DC/DC MAX17225 nanoPower

В статье описан практический опыт разработчика, применившего повышающий DC/DC-преобразователь MAX17225. В результате ряда практических экспериментов, потребовавших существенного обновления технической базы компании-разработчика, автор убедительно доказывает преимущества выбранного компонента и схемотехнической реализации. Увеличенное на 50% время автономной работы лучше других аргументов говорит об эффективности конвертеров MAX17225, а также о важности предварительной оценки элементной базы.

Подробнее

например так

#define LCD_STR_1 0x00
#define LCD_STR_2 0x40
......
lcd_gotoxy(LCD_STR_1+8,0);
printf("str_1");
lcd_gotoxy(LCD_STR_2+1,0);
printf("str 2");

сами функции lcd_gotoxy() и printf() на вашей совести, я по-другому делал

Share this post


Link to post
Share on other sites

Здравствуйте, где можно почитать литературу что бы писать прошивки на Си

Share this post


Link to post
Share on other sites

Товарищи, тк сам не разбираюсь, прошу у вас помощи.

Нужно изменить код спидометра-одометра. Сейчас код написан для датчика, выдающего 6 импульсов на метр. Нужно подправить для датчика выдающего 8 импульсов на метр. Если не сложно скомпилируйте в hex..

Буду очень признателен откликнувшимся!

Вот исходник: Speed_873a.rar

Edited by Electr0nics

Share this post


Link to post
Share on other sites

Здравствуйте, где можно почитать литературу что бы писать прошивки на Си

Вроде есть что-то и по Си, но лучше начать с другой стороны: изучить контроллеры, их особенности и логику и отдельно Си. Потом объединить, платформо-специфичного там только названия регистров, особенности разделения памяти (flash, EEPROM, SRAM) да реализация прерываний. Первое главное и решается именно изучением структуры контроллера а остальное - 1,5 функции или ключевых слова, для которых достаточно пары готовых исходников. В любом случае браться за Си до изучения контроллера и написания хотя бы пары прошивок не стоит, иначе можно получить индусский код, которому и ардуинщики позавидуют.

Даже пару примеров приведу

void func(int time)
{
_delay_ms(x);
}

и удивляются огромному коду.

int x;
ISR(TIM0_OVF)
{
x++;
}
...
int main()
{
...
printf(x);

и удивляются почему выводится все время одно значение. Это не столько реальный пример сколько модель частой ошибки.

float time;
int main()
{
time+=1;
...

тоже реально такого не искал, но вполне показательная ошибка.

Share this post


Link to post
Share on other sites

Чистый Си можно изучать в отрыве от изучения контроллера, это порой бывает даже вредно.

Гораздо проще и веселей практиковаться на Си именно на ПК, там тебе и возможности по отладке получше и развернутся есть где. Пока не затрагиваешь аппаратно зависимых вещей - разницы нет на контроллере выполняется программа или на ПК. Только во втором случае появляются допонительные возможности по исследованию поведения кода.

Вот когда изучишь на практике основы языка, тогда можно приступать к изучению аппаратно-зависимых частей языка и практиковаться на контроллерах, делать это будет куда проще чем с нуля. Главное четко знать где проходит граница чистого алгоритма и работа с железом.

Share this post


Link to post
Share on other sites

Ребята,выручайте! Мк не разу не прошивал и вот настал этот момент. Надо было прошить мегу8. Собрал программатор "пять проводков" через лпт порт. использовал программу UniProf. Подключил, мк определился, прошил его. выставил как надо фьюзы и прошил их. Все прошло без ошибок. Сейчас подключаю этот мк, но программа его просто не видит! Все, каюк ему?

Share this post


Link to post
Share on other sites

Если в фузах прописано тактирование от кварца, то где МК будет брать этот кварц? Ну и т.д..... так что все нормально. Обычно к этому времени устройство уже собрано и осталось воткнуть МК в панельку. Ну и протестировать работоспособность уже в собранной схеме.

Share this post


Link to post
Share on other sites

Вопрос еще такой вот используя СИ и контролер я могу собрать на базе контролера ФНЧ или регулятор звука?

Share this post


Link to post
Share on other sites

Слишком уж расплывчатый вопрос, формальный ответ ДА. Но когда начнешь реализовывать появится просто масса проблем которые заставят тебя отказываться от многих решений.

Весь вопрос в том что как и зачем надо обрабатывать.

Полностью обрабатывать звук в цифре - нужен довольно производительный микроконтроллер, как минимум это ARM-ы и сигнальные процессоры, помимо того если захочешь изменять громкость звука цифровым способом - у тебя должен быть запас по разрядности ЦАП/АЦП и т.д. учитывая что каждый лишний бит для ЦАП/АЦП будет обходится слишком уж дорого - такую задачу проще проводить аналоговым способом.

Если же взять специализированную микросхему с аналоговой обработкой звука и цифровым интерфейсом - достаточно будет мелкого контроллера для её настройки.

Share this post


Link to post
Share on other sites

здрасте всем!

С чего начать изучать ассемблер? Цель изучения, научиться программировать в AlgorithmBuilder.

Share this post


Link to post
Share on other sites

С ассемблера микроконтроллера на котором хочешь программировать. А если до этого не программировал - с паскаля и алгоритмов на большом ПК.

Share this post


Link to post
Share on other sites

Ну вот, проверил, как выяснилось я накосячил с прошивкой управляющего мк.

Собирал программатор по этой схеме.

Подключаю к пк, "Устройство не опознано ли работает неправильно".

Как сейчас мне повторно прошить мк?Подцепить кварц на 9 и 10ножки МК?

Share this post


Link to post
Share on other sites

Чего накосячил? Фузы не так поставил? Цепляй кварц с конденсаторами к МК.

Share this post


Link to post
Share on other sites

Кварц и от него два конденсатора по 22-33 пф на массу. Как обычно делается....

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Jesterary
      Здравствуйте. Подскажите, был ли у кого-то опыт отправки изображений с камеры (подключенной через UART или bluetooth-камеры) через GPRS (у меня модуль SIM800L, но в целом это не принципиально) на удаленный сервер? Средствами управляющего микроконтроллера, пусть даже ардуины какой-нибудь, но не малины. Возможно ли это вообще? Хотелось бы, конечно, использовать в проекте беспроводную камеру и общаться с ней, ибо камеры, подключаемые напрямую так себе качество дают. 
      Сразу скажу, что важна именно такая связь. Микроконтроллер + модуль связи + камера находятся в коробке и путешествуют по городу, в это время человек сидя дома на диване может смотреть фото с этой камеры. Смартфон для моих целей не подойдет, суть именно в микроконтроллере с модулями.
      Если у кого-то такое получалось - поделитесь, пожалуйста :)
      А то нахожусь в некоторой прострации и даже не знаю, в какую сторону думать.
    • By Максим123456789
      делаю диплом, в схеме у меня микроконтроллер PIC16F688 и мне нужно его заменить на ATmega. Не могу найти похожий
    • By Anton Bondarenko
      Всем привет
      Прошу не ругать, впервые подобный вопрос задаю.
      Хочу сделать прибор, который будет посылать сигнал, когда возле прибора будет проходить металлический предмет. 
      — угол отслеживания до 30° а лучше прямая линия, траектория
      — время реакции очень высокое до 100 мс
      — ширина проема в котором нужно сканировать от 10 до 20метров,
      — передача сигнала через вифи
      Может есть готовые решения, или отдельные компоненты.
      Подскажите пжл в каком направлении искать.
      Смотрел датчики движения, но главная проблема — время реакции.
      Спасибо
       
    • By Sofia Vin
      Предлагаем проектную работу в Москве:
      Микроконтроллер STM32F103.
        
      Есть встроенный код с использованием функций библиотеки FreeRTOS, код имеет описанный протокол для связи с внешним миром.
        
      Необходимо проводить доработку кода под задачи программиста верхнего уровня и его тестирование в составе оборудования. 
      Работа в лаборатории (м.Университет) и удаленно. 
      Оплата по договоренности.
      Если Вы обладаете опытом схемотехнического проектирования и программирования микроконтроллеров, и Вас заинтересовала данная возможность, ждем Ваши отклики по контактным данным:
      8 (925) 023-60-02   Алексей
      E-mail: nassa@marathon.ru
       
    • By Антон Плюшкин
      В общем есть небольшая тривиальная задача - сделать свитюльку. Контроллер управляет светодиодиками, цвета меняются, людишки довольны.
      Схема проста: Attiny44a -> 2n3904 x3 -> RGB-светодиод.
      Собрал, протестил, всё норм, но!
      Как только в коде я использую функцию задержки - _delay_ms (util/delay.h) - контроллер повисает!
      #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> int main(void) { // Input/Output Ports initialization // Port A initialization // Function: Bit7=Out Bit6=Out Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(1<<DDA7) | (1<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0); // State: Bit7=0 Bit6=0 Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); // Port B initialization // Function: Bit3=In Bit2=Out Bit1=In Bit0=In DDRB=(0<<DDB3) | (1<<DDB2) | (0<<DDB1) | (0<<DDB0); // State: Bit3=T Bit2=0 Bit1=T Bit0=T PORTB=(0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Phase correct PWM top=0xFF // OC0A output: Non-Inverted PWM // OC0B output: Non-Inverted PWM // Timer Period: 0,031875 ms // Output Pulse(s): // OC0A Period: 0,031875 ms Width: 0 us // OC0B Period: 0,031875 ms Width: 0 us TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (1<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (1<<WGM00); TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (1<<CS00); TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Ph. correct PWM top=0x00FF // OC1A output: Non-Inverted PWM // OC1B output: Disconnected // Noise Canceler: Off // Input Capture on Falling Edge // Timer Period: 0,031875 ms // Output Pulse(s): // OC1A Period: 0,031875 ms Width: 0 us // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (1<<WGM10); TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10); TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 0 Interrupt(s) initialization TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0); // Timer/Counter 1 Interrupt(s) initialization TIMSK1=(0<<ICIE1) | (0<<OCIE1B) | (0<<OCIE1A) | (0<<TOIE1); // External Interrupt(s) initialization // INT0: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-11: Off MCUCR=(0<<ISC01) | (0<<ISC00); GIMSK=(0<<INT0) | (0<<PCIE1) | (0<<PCIE0); // USI initialization // Mode: Disabled // Clock source: Register & Counter=no clk. // USI Counter Overflow Interrupt: Off USICR=(0<<USISIE) | (0<<USIOIE) | (0<<USIWM1) | (0<<USIWM0) | (0<<USICS1) | (0<<USICS0) | (0<<USICLK) | (0<<USITC); // Analog Comparator initialization // Analog Comparator: Off // The Analog Comparator's positive input is // connected to the AIN0 pin // The Analog Comparator's negative input is // connected to the AIN1 pin ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0); ADCSRB=(0<<ACME); // Digital input buffer on AIN0: On // Digital input buffer on AIN1: On DIDR0=(0<<ADC1D) | (0<<ADC2D); // ADC initialization // ADC disabled ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0); unsigned char VL_OCR0A = 0, VL_OCR0B = 0, VL_OCR1A = 0; OCR0A = 0; OCR0B = 0; OCR1A = 0; while(1) { _delay_ms( 100 ); VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } } Т.е. если указать задержку в начале цикла, то светодиод не светится вообще.
      Если задержку убрать - светодиод немного подсвечивает всеми цветами.
      while(1) { _delay_ms( 100 ); // <--- ЗАДЕРЖКА --- VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } Где я накосячил?
      З.Ы.: Замечаний по поводу оптимизации кода, излишних переменных и п.р. прошу не писать - изощряюсь как могу ибо не пойму почему не работает
  • Сообщения

    • здесь чаще люди ходят, значит спрошу здесь. кто нибудь работал с микроконтроллером at90pwm3b? не могу запустить на нем PSC
    • То ли исправен: то ли неисправен:   Надо монетку бросать...
    • И??? Покажи схему, краткое описание устройства, если не жалко то "кекс".
    • попробуй так switch (PLACE) { case 0: PORTB &= 0b11000011; PORTC |= (DIG[L0]&0b00111111); if (MODE==1) PORTC.5=0; PORTD |= ((DIG[L0]&0b11000000)>>6); A0=1; break; case 1: PORTB &= 0b11000011; PORTC |= (DIG[L1]&0b00111111); PORTD |= ((DIG[L1]&0b11000000)>>6); A1=1; break; case 2: PORTB &= 0b11000011; PORTC |= (DIG[L2]&0b00111111); PORTD |= ((DIG[L2]&0b11000000)>>6); A2=1; break; case 3: PORTB &= 0b11000011; PORTC |= (DIG[L3]&0b00111111); PORTD |= ((DIG[L3]&0b11000000)>>6); A3=1; break;  
    • Пробежался по ютуб-обзорщикам, задал один и тот же вопрос - как слышно SOLO 6С на уровне 20 - все ответили, что достаточно громко, чего я о своей колонке сказать как раз не могу. Сравнивая кривую управления с исследованиями сигналов управления закрывается подозрение, что где то пропало 20dB усиления. Именно на такую величину способен усиливать сигнал аудио-процессор. Но почему то он этого делать не хочет - лишь ослабляет сигнал. 
    • "Физиологически бабушка от дедушки почти ничем не отличается, но есть нюанс!" (с) 
    • - Дорогой, я тебе на день рождения купила пять пар капроновых колготок. - Нафига мне колготки?! - Ну, если не хочешь, я сама их буду носить.     - Я ухожу. - Ну, я не удивлен. Наши отношения уже давно становились всё хуже и хуже, а теперь я даже не уверен, чувствуем ли мы вообще что-то друг к другу. - Я ухожу в магазин!!! - О, захвати мне пивка.
×
×
  • Create New...