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

Помогите студенту-чайнику по МК


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

преподователь говорит "синтаксически неполный, работать не будет"

правильно говорит...

получили прерывание, прочитали состояние входа , если лог.1 - ошибка, вышли из прерывания, если лог.0 изменили состояние выхода,выполнили задержку на дребезг контактов и ожидаем появления лог.1на входе, выходим с перерывания.... как-то так....

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

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

преподователь говорит "синтаксически неполный, работать не будет"

правильно говорит...

получили прерывание, прочитали состояние входа , если лог.1 - ошибка, вышли из прерывания, если лог.0 изменили состояние выхода,выполнили задержку на дребезг контактов и ожидаем появления лог.1на входе, выходим с перерывания.... как-то так....

и как исправить?

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

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

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

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

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

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

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

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

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

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

Как переделать этот код для ардуино под матрицу 7х6,данный написан для 8х8

const int row[8]={23,25,27,29,31,33,35,37};

const int col[8]={39,41,43,45,47,49,51,53};

int v=3;

int dms=400;

boolean A[8][8] =

{0,0,1,1,1,1,0,0,

0,1,0,0,0,0,1,0,

0,1,0,0,0,0,1,0,

0,1,0,0,0,0,1,0,

0,1,1,1,1,1,1,0,

0,1,0,0,0,0,1,0,

0,1,0,0,0,0,1,0,

0,1,0,0,0,0,1,0};

void setup()

{

for (int i=0; i<8; i++)

{

pinMode(row,OUTPUT);

pinMode(col,OUTPUT);

}

for (int i=0; i<8; i++)

{

digitalWrite(row,HIGH);

}

}

void loop()

{

paint(A, v);

}

void paint(boolean screen[8][8], int v)

{

int i, j;

for (int c=0; c {

for (i=0; i<8; i++)

for (j=0; j<8; j++)

{

if (screen[j]==1)

{

digitalWrite(row, LOW);

digitalWrite(col[j], HIGH);

delayMicroseconds(dms);

digitalWrite(row, HIGH);

digitalWrite(col[j], LOW);

}

else

{

digitalWrite(row, HIGH);

digitalWrite(col[j], LOW);

delayMicroseconds(dms);

digitalWrite(row, HIGH);

digitalWrite(col[j], LOW);

}

}

}

}

рулим

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

Что-то мне подсказывает, что с нуля написать будет проще. Особо не всматривался, но, кажется, у автора вместо массива из 8 байтов используется массив из 64 хз чего (зависит от компилятора, не уверен, что он это воспримет правильно), а "динамическая индикация" работает по одному пикселю. В кавычках - потому что настоящая динамическая индикация работает одновременно со всей строкой/столбцом. На Си это будет выглядеть примерно так

#define PORTROW PORTB
#define PORTCOL PORTD

unsigned char screen[8]={0b00000000,0b01010101,0b10101010,0b11111111,0b11110000,0b00001111,0b11001100,0b00110011};
ISR(TIMER0_OVF_vect){
static unsigned char counter=0;
static char mask=0xFE;
counter++; mask=(mask<<1)|0x01;
if(counter>7){counter=0; mask=0xFE;}

PORTCOL=0x00;
PORTROW=mask;
PORTCOL=screen[counter];
}

Проверено в протеусе на ATmega8515. Гораздо короче и эффективнее, чем ардуиновский вариант. Ну и использование прерывания - очевидный плюс.

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

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

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

  • 3 месяца спустя...

Кто бы подсказал. Как заменить PIC16F84A в устройстве, на какой нибудь AVR типа Atmega8 или Attyni? Наверное прогу надо дизассемблировать а потом в ней поковыряться и переделать под AVR. Или не так? Сжег 3 пикушки, а меги легко идут.

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

дизассемблировать

Без исходного кода, вряд ли у вас получится.

Никогда не спорьте с дураком - люди могут не заметить между вами разницы

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

...Наверное прогу надо дизассемблировать а потом в ней поковыряться и переделать под AVR. Или не так? Сжег 3 пикушки, а меги легко идут.

Можно и так, но это самый малопродуктивный путь, слишком разная архитектура. IMHO, раз опыта мало, следует взять микроконтроллер пожирнее и написать всё с нуля. С MEGA-ми не работал, но думаю, их ресурсов должно хватить, раз они - MEGA, а всё влезало в PIC16F84.

А как Вам удалось сжечь аж 3 PIC-а? Они слабоубиваемы по своей природе.

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

дизассемблировать

Без исходного кода, вряд ли у вас получится.

Получится, если написать с нуля :)

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

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

заменить PIC16F84A

При желании можно всё что угодно. Хоть с нуля (зная логику работы), хоть дизассемблируя (опять же выковыряв логику). Но жуть как любопытно - как их можно сжечь?

Я не раздаю удочки. Я продаю рыбу.

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

заменить PIC16F84A

как их можно сжечь?

Напряжением прожига. 12вольт мало, не прошиваются. 14вольт много, не прошиваются. Молчат.

То ли дело Мега, дал 5 вольт с usb и все бегает.

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

Без исходного кода, вряд ли у вас получится.

Получится, если написать с нуля :)

Это и будет исходный код.

Никогда не спорьте с дураком - люди могут не заметить между вами разницы

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

Ладно. А какая дешевая Мега подойдет, если прога на пике занимала область адр от 10001 до 1002C ?

Прога - элементарный датчик минутных команд для станка в трех циклах, 1минута, 5 минут и 24 часа.

Attiny13 пойдет?

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

А какая дешевая Мега подойдет

Attiny13 пойдет?

Замечательная комбинация! Для справки, мега - не название ядра, а серия контроллеров средней сложности - ATmega, а тини - низкой сложности - ATtiny. Разрабатываются и те и другие одной фирмой и на основе одного ядра - AVR8.
Больше не буду связываться с Пикашками.
Многие любители PIC считают AVR извращенеим. Пожалуй, они с вами не согласятся.
Напряжением прожига. 12вольт мало
Осторожнее, если накосячите с фузами (RSTdisable, SPIen и тактирование) - придется осваивать высоковольтное программирование, чтобы оживить контроллер. Впрочем, для минутных интервалов времени это не обязательно.

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

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

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

Спасибо. Это все, что хотел узнать. Больше не буду связываться с Пикашками.

Вы считаете, что возьмёте ATTiny и всё само заработает? :) Если не читать документации и делать что-то из г..на и палок, то только г.. и получится, и с любым микроконтроллером. :) Если "меги легко идут", то что мешает написать такую элементарщину не прибегая к реверс-инжинирингу?

Многие любители PIC считают AVR извращенеим. Пожалуй, они с вами не согласятся.

IMHO, так считают только извращенцы и просто любители. :)
...Осторожнее, если накосячите с фузами (RSTdisable, SPIen и тактирование) - придется осваивать высоковольтное программирование, чтобы оживить контроллер....
Уверяю Вас, это - лишь вопрос времени. :) Изменено пользователем shindax
Ссылка на комментарий
Поделиться на другие сайты

Программы писать - сложно для меня. Пока только прошивал готовые программы. Хотел попробовать с PIC16F84, напаял программаторов разных схем и не получилось. Может быть мне прислали негодные, ну и ладно. Попробую теперь на AVR-х.

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

Всем привет. Такой вопрос: нужно в Altium Designer сделать схему с микроконтроллером, но проблема в том, что микроконтроллера не нашел ни в одной библиотеке. Микроконтроллер компании Freescale, я так понял это та же Моторола: MC9S08AW60 в корпусе LQFP на 44 пина. Подскажите, как быть? Как в Альтиуме поставить этот МК? Я так думаю, что нужно найти другой МК на 44 пина в таком же корпусе, но как его найти? Может подскажите аналоги в таком же корпусе и с такими же пинами (в смысле по размерам).

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

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

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

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

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

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

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

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

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

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

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

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