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

Вопросы от начинающих по МК


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

Ну это на уровне препроцессора, там можно записать по-разному. Но и на уровне самого ассемблера, записи

sbr r16,(1<<1 | 1<<2), эквивалентная ori r16,(1<<1 | 1<<2), то что на Си записывается как r16 |= (1<<1 | 1<<2); //тут r16 - переменная

cbr r16,(1<<1 | 1<<2), эквивалентная andi r16,~(1<<1 | 1<<2), на Си r16 &=~(1<<1 | 1<<2); //тут r16 - переменная

вполне распространены. А вот работа с младшими портами поддерживает установку/снятие битов по одному

sbi PORTB,1

cbi DDRC,5

Так что в целом, нормальных программистов на ассемблере такие записи не пугают, только новичков, еще не оценивших красоты побитовой магии.

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

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

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

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

  • Ответов
  • Создана
  • Последний ответ

Топ авторов темы

Здравствуйте.

Почти собрал этот программатор http://easyelectroni...vr-usbasp.html

Скажите он только для AVR, с PIC и STM32 он работать не будет?

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

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

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

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

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

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

Да, usbasp это только для AVR. Кстати, ссылку поправьте, напрямую она не открывается, в нее точка попала.

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

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

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

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

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

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

Прошу не ругать. Из инета вытащил кучу примеров по работе с SPI но так ничего и не получилось. Контроллер ATmega8. Нужно по SPI связать с группой регистров сдвига 74hc595

SPCR = (1<<SPE)|(0<<DORD)|(1<<MSTR)|(0<<CPOL)|(0<<CPHA)|(1<<SPR1)|(0<<SPR0);

SPSR = (0<<SPI2X);

это все успешно записывается в регистр а вот записать в регистр SPDR данные для передачи не могу!

SPDR = 0xFF;

использую программу atmelstudio 6

после попытки записи в пегистр SPDR в программе ничего не наблюдаю в регистре как были ноли так и остались. Если можно напишите работающий код на 100% или что то еще в других регистрах надо включить или выключить?

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

В чем проверяете? То что из SPDR читаются нули - ничего не значит, это может быть принятый байт. Можно в протеусе подключить SPI-анализатор и смотреть там.

Код на первый взгляд правильный.

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

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

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

Наконецто добрался для дальнейшего изучения.

//atmega 8

#include <avr/io.h> //подключение стандартной библиотеки ввода/вывода

#define F_CPU 8000000 //частота тактирования

void qqq()

{

DDRB=0xFF; //порт B работает как выход

SPCR=0b01110011; //прерывания запрещены, SPI включен, младший бит передается первым, МК ведущий, импульсы положительной полярности, скорость CLK/128

SPSR = (0<<SPI2X);

SPDR=0b01010101; //Записываем в регистр передаваемую информацию

while(!(SPSR & (1<<SPIF))); //ждем окончания передачи по SPI

}

int main(void)

{

qqq();

}

вот програмка которая должна вывести информацию по SPI на регистры сдвига. Программу для написания кода использую Atmelstudio 6. В ней в пошаговом режиме проверял работу SPI в симуляторе, после записи информации в регистр SPDR в сам регистр почемуто ничего не записалось почему незнаю или так и должно быть?

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

Добавьте бесконечный цикл

int main(){
 qqq();
 while(1){
   asm("nop");
   asm("nop");
 }
}

и смотрите в симуляторе, не будут ли меняться значения на MOSI и SCK. Если будут - все нормально. Ну и протеус в каких-то ситуациях симулирует лучше Студии. По крайней мере, SPI он эмулирует нормально.

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

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

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

Спасибо! Разобрался с этим. Следующий вопрос! Как в протеусе добавить инструмент генерации кода для СИ там вроде тока для ассамблера. Что установить надо?

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

linuxmenы выручайте, под ubuntu 14 AStudio6 работала норм из под wine'а переехал на mint17 и капец. все NETы которые устанавливаются, поставил, VS тоже установил, все это дело делал из winetricks. Студия поставилась но не запускается, ругается на какието компоненты

вот так

не могу найти один или более компонентов / переустановите приложение

каких компонентов нехватает не пишет. помогите пожалуйста, уж очень удобная IDE.

попробовал эклипс с плагином от AVR, какая то хрень если честно, создаю проект все норм но как дело доходит до компиляции, то обязательно какого нить файла не хватает, причем такого файла я в проектах студии не наблюдал ни разу.

  • 0

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

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

не могу найти один или более компонентов / переустановите приложение

позавчера точь-в точь на виндовс 7 приключилось. В итоге скачал седьмую студию, о которой и не подозревал... может это Атмел так принуждает к апгрейду?

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

да хрен их знает что они там творят, я уже лазейки нашел как NET4 поставить, уже все установил, весь WINETRICKS перелопатил, всеравно не работает.

а про 7ю студию от вас сейчас услышал, скачаю, попробую поставить, посмотрим что из этого выдет.

но вот эта новость от вас, что на вин7 не запустилась, меня если честно ошарашела.

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

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

Может проще текстовый редактор + make + gcc?

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

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

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

В итоге скачал седьмую студию, о которой и не подозревал... может это Атмел так принуждает к апгрейду?

Помоему , ни кого Атмел не принуждает , При регистрации 6 Студии указывается почтовый ящик , так вот Атмел инфоромировала , что вышла 7 Студия , Установил на вин 7х64 все запустилось , попробовал открыть проект из 6 студии , она его переделала под себя , и даже предложила оставить проект в 6 формате , правда после этого все ярлыки с 6 студии перекрасились в 7 , тоесть студия стала по умочанию открывать все проекты Атмел , но это мой не догляд Ю на каком то этапе установки она спрашивала об этом .

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

Давно уже на 7й студии, у неё местами поудобней интерфейс.

6ка у меня всегда ставилась на 7ю винду, а вот 7я студия на давно не обновляемую 7ю винду не поставилась изза отсутствия нужных обновлений на винде.

DmitryS,

Файлы проекта студии конечно будут с какой то одной студией ассоциироваться, но это можно поменять вручную, в свойствах файла)

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

COKPOWEHEU

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

седьмая студия из под вайна даже на установку не запустилась

еще пробовал эклипс настроить, не получилось почему-то. все время какойто фаил не понятный требует

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

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

Мне хватает. Если уж используете makefile, допишите опцию prog: или что-то подобнavrое

prog:
<--->avrdude <флаги> -p $(MCU) -U flash:w:$(PROJECT).hex:i

<---> - одна табуляция. Для makefile это важно

<флаги> - флаги, специфичные для программатора. У меня это -c stk500v2 -P avrdoper

Можно еще изменить первую строку на

prog: $(PROJECT).hex

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

Тогда программировать будете просто запуская make prog

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

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

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

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

А я на 4.19-й завис. Как таковой не пользуюсь, но вот какая штука. Собрал программатор ucGoZilla от Prottosa. Хорошая штука, но... выше 4.19 не поддерживается. Так и содержу 3 версии Студии. Одной программирую, другими редко пользуюсь. :)

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

Четвёртая у меня стоит, из под wine нормально запускается, мне вот только подсветки кода в ней не хватает.

Make, только начал пробовать ещё до конца не разобрался, а вот блокнот впринципе очень удобная штука оказалась, пока кернигана и ритчи читаю, в блокноте тренируюсь. Но по этой книге примеры именно для компа(консоли) и мне даже понравилось простенькие проши писать)))

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

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

еще пробовал эклипс настроить, не получилось почему-то. все время какойто фаил не понятный требует

В консоли должно писать, чего не хватает.

#include io.h или #include /avr/io.h пишете?

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

Слышал что можно в самой студии,хотелось бы там)

Вот коты перетирают этот же вопрос , в 4 студии работает , про 6-ю нескажу , вроде должно , чем 6-я хуже 4-ой .

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

Народ помагайте. Пишу программу в студио 6. Возникла такая проблема что часть команд при пошаговай симуляции пропускаются, не могу никак понять почему. Прогу которую пишу не стал сюда писать а из нее сляпал пример удали немного лишнего. Такой косяк появляется при написании в программе команды IF

на данном примере при пошаговй симуляции у меня выполнение команд с data4=0b11111111; перепрыгивает на b=0x00; пропуская 2 строки, если убираю if (x=5) y=2; все выполняется нормально. Подскажи что такое, где косяк?

//atmega 8

#include <avr/io.h> //подключение стандартной библиотеки ввода/вывода

#include <avr/pgmspace.h>

#include <util/delay.h>

#define F_CPU 8000000 //частота тактирования

unsigned char data1;

unsigned char data2;

unsigned char data3;

unsigned char data4;

unsigned char y;

unsigned char x;

unsigned char b;

unsigned char bufer;

int main(){

data1=0b10000000;

data2=0b00000000;

data3=0b01111111;

data4=0b11111111;

y=0x00;

x=0x00;

b=0x00;

if (x=5) y=2;

}

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

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

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

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

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

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

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

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

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

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

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

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