Перейти к содержанию

Видеокурс по AVR-микроконтроллерам для начинающих


Рекомендуемые сообщения

header Вроде как есть а работать не хочет .

В winavr работает на ура. Ну подскажите люди добрые! В чем дело?

post-182532-0-26846600-1425748101_thumb.png.

исходники

Архив ZIP - WinRAR.zip

Спасибо.

Изменено пользователем Alewka
Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

В том что не обьявленна у вас такая переменная prog_int8_t

смотрите исходник который вы переделывайте и ищите обьявленную переменную!

Скорее всего автор имел в виду uint8_t но далеко не факт!

коплю на мечту - Днепр К750

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Доброго времени суток!

Кто - нибудь может подсказать как конкретно зашивать программу в МК?!

У меня есть программатор USBasp + драйвера на него стоят.

Сначала подключил через SPI и началось сильное нагревание.

Переподключил правильно, не греется, но дудка и другие программы выдают ошибки.

Можете написать алгоритм действия для зашивания программы?! А я уже сам разберусь на каком этаме я делаю ошибку.

Спасибо

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Извиняюсь за спам может . Но огромное спасибо автору за уроки, очень помогли. Хотелось бы увидеть продолжение например UART Передача данных на ПК и обратно , понимаю что может это несовсем для новичков ..но оченьинтересует данная тема. Или например создания часов как пример работы с таймерами и кварцами, с настройкой фюзов, знаю в интернете много статей , но неочень понятно что как зачем. У вас же в уроках всё очень подробно было рассказано. Также работа с ШИМ уже вроди и сам разобрался но много вопросов осталось . :crazy: :crazy: :crazy: :crazy:

Ссылка на комментарий
Поделиться на другие сайты

ALEWKA

//КОНСТАНТЫ В PROGRAM MEMORY

const char SimbMass [] PROGMEM = {

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFA,0x00,0x00,

0x00,0xC0,0x00,0xC0,0x00,0x28,0xFE,0x28,0xFE,0x28};

Так записывал переменные во флешь в студии 6.2

По другому она не понимает.

Ссылка на комментарий
Поделиться на другие сайты

ALEWKA

//КОНСТАНТЫ В PROGRAM MEMORY

const char SimbMass [] PROGMEM = {

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFA,0x00,0x00,

0x00,0xC0,0x00,0xC0,0x00,0x28,0xFE,0x28,0xFE,0x28};

Так записывал переменные во флешь в студии 6.2

По другому она не понимает.

Спасибо!

Ссылка на комментарий
Поделиться на другие сайты

lcd1.cpp подключен, иначе бы не компилировался с ошибками, а вот подключен ли n5110.c неизвестно. Автор, покажите ./default/makefile

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

------ Build started: Project: lcd1, Configuration: Debug AVR ------

Build started.

Project "lcd1.cppproj" (default targets):

Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!='').

Target "CoreBuild" in file "C:\Program Files (x86)\Atmel\Atmel Studio 6.2\Vs\Compiler.targets" from project "g:\proekt\lcd1\lcd1\lcd1.cppproj" (target "Build" depends on it):

Task "RunCompilerTask"

Shell Utils Path C:\Program Files (x86)\Atmel\Atmel Studio 6.2\shellUtils

C:\Program Files (x86)\Atmel\Atmel Studio 6.2\shellUtils\make.exe all

Building file: .././lcd1.cpp

Invoking: AVR8/GNU C Compiler : 4.8.1

"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-g++.exe" -funsigned-char -funsigned-bitfields -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega8a -c -MD -MP -MF "lcd1.d" -MT"lcd1.d" -MT"lcd1.o" -o "lcd1.o" ".././lcd1.cpp"

Finished building: .././lcd1.cpp

Building target: lcd1.elf

Invoking: AVR8/GNU Linker : 4.8.1

"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-g++.exe" -o lcd1.elf lcd1.o n5110.o -Wl,-Map="lcd1.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=atmega8a

lcd1.o: In function `presets()':

g:\proekt\lcd1\lcd1\Debug/.././lcd1.cpp(12,1): error: undefined reference to `Lcd_init()'

g:\proekt\lcd1\lcd1\Debug/.././lcd1.cpp(13,1): error: undefined reference to `Lcd_clear()'

lcd1.o: In function `main':

g:\proekt\lcd1\lcd1\Debug/.././lcd1.cpp(22,1): error: undefined reference to `Lcd_prints(unsigned char, unsigned char, LcdFontSize, unsigned char const*)'

g:\proekt\lcd1\lcd1\Debug/.././lcd1.cpp(23,1): error: undefined reference to `Lcd_update()'

collect2.exe(0,0): error: ld returned 1 exit status

make: *** [lcd1.elf] Error 1

The command exited with code 2.

Done executing task "RunCompilerTask" -- FAILED.

Done building target "CoreBuild" in project "lcd1.cppproj" -- FAILED.

Done building project "lcd1.cppproj" -- FAILED.

Build FAILED.

========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========

Подключил библиотеку n5110с. скомпилировалось без ошибок

но в самом видеоуроке работало и без нее

post-189232-0-94249100-1426353709_thumb.png

Ссылка на комментарий
Поделиться на другие сайты

Подскажите пожалуйста как победить это безобразие? " Unable to start program libgcc Library. The specified file is an unrecognized or unsupported binary format."

Не удается запустить программу libgcc библиотеки. Указанный файл неизвестной или не поддерживается формат binare. Пеереустанавливал несколько раз. ОС Windows 8.1 64

Изменено пользователем Яя777
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

всем привет! Вопрос по 4-му уроку: не понимаю логики опроса порта в условии с использованием сдвига if (PINC&(1<<PC0)). Как это условие прочитать словами?

Изменено пользователем satway
Ссылка на комментарий
Поделиться на другие сайты

словами типа

если в нулевом бите порта с лог1 то что нибудь делаем

а если еще точнее то прочитайте про оператор & и вы сами поймете, там ничего сложного

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

т.е. если бы нужно было опросить порт PC2 на наличие единицы на входе, стока была бы такой if (PINC&(1<<PC2))? а если в условии на входе должен быть 0 то такой if (PINC&(0<<PC2))?

Ссылка на комментарий
Поделиться на другие сайты

И что мы тут курим? Опрос на наличие лог.1 if(PINC&(1<<PC2)) if((PINC&(1<<PC2))!=0) , Опрос на наличие лог.0 if(!(PINC&(1<PC2))) if((PINC&(1<<PC2))==0)

Понятнее и короче всеравно не выдумаете.

- А совесть в курсе? - А совесть в доле! :-D

Эксперт — это человек, который совершил все возможные ошибки в некотором узком поле.

Все грамматические ошибки являются авторским стилем изложения материала.

Ссылка на комментарий
Поделиться на другие сайты

И что мы тут курим? Опрос на наличие лог.1 if(PINC&(1<<PC2)) if((PINC&(1<<PC2))!=0) , Опрос на наличие лог.0 if(!(PINC&(1<PC2))) if((PINC&(1<<PC2))==0)

Понятнее и короче всеравно не выдумаете.

спасибо, теперь все понятно

Ссылка на комментарий
Поделиться на другие сайты

Добрый день. Делал домашку, получилось сделать что бы были задействованы все порты и мигали светодиоды. С rand не получилось и решил для тренеровки сделать так: Что бы на порту B светодиоды загорались один за другим. Бегущая точка. И в это время на порту D подцеплен 8 сегментный индикатор и что бы на нём тоже появлялись цифры от 1 до 8.

код

#define F_CPU 8000000
#include <avr/io.h>
#include <util/delay.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
DDRB = 0xFF;
PORTB = 0x00;
DDRD = 0xFF;
PORTD = 0x00;
int t = 1;
int list[8] = { 0b00000110, 0b01011011, 0b01001111, 0b01100110, 0b01101101, 0b01111101, 0b00000111, 0b11111111 };
PORTB = 0b00000001;
PORTD = 0b00000110;
_delay_ms(500);
while(1)
{
if(t != 8)
{
PORTB = (PORTB << 1);
PORTD = list[t++];
} else {
PORTB = 0b00000001;
PORTD = 0b00000110;
t = 1;
}
_delay_ms(500);
}
}

Схема работает, НО кто мне объяснит почему при первой итерации цикла while условие if не срабатывает и проваливается в else? На второй итерации всё идёт как надо. Ведь в момент проверки if, t = 1. Усливие правдиво, а кидает на else. И самое интересное. Если делать в атмеле отладку пошагово, то курсор пропускает строку int t = 1; и идёт дальше, а как сделает PORTD = 0b00000110;, возвращается на int t = 1; Далее уже в while

post-23236-0-24877900-1427398801.png

Ссылка на комментарий
Поделиться на другие сайты

Несмотря на такое интересное поведение, в отладчике DDRB и PORTB меняются как надо. Видимо прыжок идет не на PORTD = list[t++]; а на list[t++];

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...