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

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


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

Алексей.

Это каша из топора. 16-ый ПИК - это топор, как Вы уже догадались. laugh.gif

Задачу приема с эзернета выполнит оный модуль.

ПИК тут сбоку припеку.

戦う前に相手のベルトの色に注目

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

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

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

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

Как это сбоку? а кто данные будет обрабатывать? модуль осуществляет лишь интерфейсные функции. А что передавать-принимать должен решать контроллер.

Учение - изучение правил. Опыт - изучение исключений.

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

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

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

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

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

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

@Alexeyslav, а можно пожалуста подробнее что делать с pic ом и єтим модулем. у меня задача включать выключать порты и передавать данные с ацп (ацп наверно на pic16f48a отдельно будет) на компьютер)

скорость не очень важна

http://www.dw-sharing.tv/index.php/faq/5 нашел статейку. хм зачем тогда его туда лепят если только в оболочку ядра) а если линь поставить на роутер через него никак все рано нельзя будет пик соединить?)

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

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

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

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

Поподробнее? читать мануалы... там очень подробно все расписано. Скачиваешь даташит на ENC28J60, разбираешься в сущности IP-протокола как устроены на его основе UDP-датаграммы, и разбираешь их побайтно сверяя нужные поля - тебе же не нужна полная реализация IP-протокола на контроллере. Тебе нужно ловить определенный тип датаграмм(UDP) сверить адрес кому предназначен пакет, номер порта и считать несколько байт данных, все остальное можно просто прокрутить впустую. Точно так же, передавать ответ - запоминаешь адрес с которого пришел запрос данных, номер порта и отвечаешь формируя побайтно датаграмму. каким образом строится датаграмма, как она устроена изнутри можно полюбопытствовать у википедии/гугла. На компе, тебе нужна будет программа которая передает/принимает UDP датаграммы. Это тоже придется писать самому.

Учение - изучение правил. Опыт - изучение исключений.

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

Доброго времени суток.Хотел уточнить, а то появились сомнения. собираю девайс

http://cxem.net/mc/mc61.php

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

насколько я понял в проекте на матрице четко 16 выводов. у меня всего 24 TBA15-11EGWA.

Возможно ли ее использовать?

Если не так то, пожалуйста, подскажите какой аналог можно взять матрицы той которая в проекте используется.

Заранее спасиба.

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

Возможно. Просто у тебя видимо двухцветная, с красными и зелеными светодиодами, поэтому на 8 выводов больше. Прозвони тестером диодов и методом тыка(или методом скачивания даташита) определи где столбцы а где строки и какого цвета.

А вообще, это вопрос религии что считать столбцами а что строками у квадратных светодиодных матриц...

Изменено пользователем Alexeyslav

Учение - изучение правил. Опыт - изучение исключений.

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

Спасиба за ответ.

Хочется вот еще какой момент уточнить.Имеется программатор

http://www.masterkit.ru/main/set.php?code_id=276487

я все по-прежнему пытаюсь прошить мк из проекта (моджет), меня интересуют следущий момент в схеме присутствует внешний кварц.

То есть при прошивке меги мне просто необходимо правильно установит fuse?

Если бы в проекте отсутствовал этот кварц, то установки fuse не было бы необходимости.?

это так?

заранее спасиба)))

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

Почему в некоторых схемах вывод Reset (допустим у mega8) подтягивают к плюсу, а в каких то нет? Есть ли практический смысл в этом подтягивании?

в наше время снег был белее и пушистей

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

Смысл есть всегда. В контроллере уже есть встроенный резистор, с ним работает но его величина не располагает к стабильной работе. Любой статический "шорох" вблизи схемы и она будет сбрасываться. Конечно заметить это будет довольно сложно, и вылезти такая проблема может не сразу.

Учение - изучение правил. Опыт - изучение исключений.

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

Ясно, тогда буду ставить всегда.На одной схеме похожее было с кнопками, были непонятки с работой, пока не додумался подтянуть, и всё стало в норму.

в наше время снег был белее и пушистей

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

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

Я совсем новичок в этом деле, подскажите пожалуйста.

Я хочу на базе МК архитектуры AMR7 реализовать свою задачу. Задача такая - есть несколько аналоговых сигналов от датчиков и несколько дискретных. Нужно перевести их в цифру, далее обработать и во-первых сохранить на сменный носитель, а впоследствии возможно передать через 3g или другие технологии, во-вторых вывести актуальную информацию на экран, в-третьих перевести обратно из цифры в аналоговые и дискретные сигналы.

Я подобрал вот такую отладочную плату SK-MLPC2387, и вот такой USB отладчик/программатор JetLink8

Собственно пара вопросов. Есть ли уже готовые похожие проекты, и где их можно получить, не обязательно на базе ARM7, я выбрал эту архитектуру, только потому что у меня есть книжка по ней (семейство LPC2300/2400).

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

Заранее спасибо.

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

Это:

Я совсем новичок в этом деле, подскажите пожалуйста.

И это:

Я хочу на базе МК архитектуры AMR7 реализовать свою задачу. Задача такая - есть несколько аналоговых сигналов от датчиков и несколько дискретных. Нужно перевести их в цифру, далее обработать и во-первых сохранить на сменный носитель, а впоследствии возможно передать через 3g или другие технологии, во-вторых вывести актуальную информацию на экран, в-третьих перевести обратно из цифры в аналоговые и дискретные сигналы.

на мой взгляд, немного несовместимые задачи, может начать с чего попроще?

Errare humanum est. Коли людЯм позволено, что же о нас то говорить!
 

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

Если есть что попроще, да еще с готовыми аналогичными проектами, то я конечно не против начать с них ))

У меня еще есть книжка по 8051 и по AVR32 (AT32UC3).

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

А вот отладочная плата на базе 8051 что то как то бедно выглядит.

ME-8051-READY BOARD

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

по пальцам разъясните мне что значат эти строки

DDRD &= ~(1<<PD2);

PORTD |= (1<<PD2);

DDRC &= ~(1<<DAT);

PORTC |= (1<<DAT);

я в этих сдвигах амперсандах и ~ | не понимаю что значат ... :blink:

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

DDRD &= ~(1<<PD2); // сбросить в регистре DDRD бит номер PD2
PORTD |= (1<<PD2);// установить в регистре PORTD бит номер PD2
DDRC &= ~(1<<DAT);// сбросить в регистре DDRC бит номер DAT
PORTC |= (1<<DAT);// установить в регистре PORTC бит номер DAT

Пока ты жив, надежда есть.

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

Сперва хотел послать в Гугл, поскольку это стандартные операторы языка Си, но на первой странице по очевидным запросам ничего нет.

A &= B; //переменной A присвоить значение лог. AND значений A и В.

A |= B; //переменной A присвоить значение лог. OR значений A и В.

A = ~B; //переменной A присвоить значение лог. NOT значения B.

A = (B<<C); //переменной А присвоить значение B поразрядно сдвинутое влево С раз (С - константа).

A ^= B; //переменной A присвоить значение лог. XOR значений A и В.

A = B x D; //переменной A присвоить значение лог. x значений A и В (х - лог. оператор: ||, &&, ^).

Несколько неструктурированно, но в любом случае лучше читать официальную документацию.

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

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

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

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

Объясните пожалуйста такую вещь:

1 случай:

ldi temp , 0b00000011 ; активирую таймер с делением частоты на 64

out TCCR1B,temp

ldi temp,(1<<TOIE1 ) ;активирую прерывание по переполнению!

out TIMSK,temp

обработчик прерывания:

perepolnenie:

in temp, PortB

eor temp,r18

out PortB,temp

reti

В этом случае светодиод моргает с частотой 1 раз в скунду

2 случай:

ldi temp , 0b00001101 ; запуск таймера T\C1 с делением !!! на 1024 !!!

out TCCR1B,temp ; режим(CTC) сброс при совпадении

ldi temp, 0xFF ;здесь записываю максимальное число

out OCR1AL,temp ;по сути получается "прерывание по переполнению"

ldi temp, 0xFF ;

out OCR1AH,temp ;

ldi temp,( 1<<OCIE1A) ; разрешение прерывание по сравнению

out TIMSK,temp

НО!!! в этом случае, не смотря на то что деление частоты большее,

т.е. таймер должен работать медленней,а моргание происходит чаще!

Как такое может быть?

Работаю на отладочной плате STK500, на Atmega8515

полный код прилагаю.

прерывание.rar

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

Пишу в CVAVR у меня не получается прерывание организовать:

#include "mega8.h"
#include "interrupt.h"
  ISR( INT0_vect )
   {
       static unsigned char data;

       if ( _edge == FALL )
       {
           if ( _bitCount < 11 && _bitCount > 2 )
           {
               data = ( data >> 1 );    // Shift the data over.
               if ( PIND & 8 )
                   data |= 0x80;    // Add a bit if it is a one.
           }
           _edge = RISE;            // Ready for rising edge.
           MCUCR |= 0x03;            // Setup INT0 for rising edge.
       }
       else
       {
           if( --_bitCount == 0 )        // All bits received?
           {
               decode( data );        // Figure out what it is.
               _bitCount = 11;        // Ready for the next scancode.
           }
           _edge = FALL;            // Setup routine the next falling edge.
           MCUCR &= ~0x03;            // Setup INT0 for the falling edge.
           MCUCR |= 0x02;
	}
}

на переменные не обращайте внимание(они не объявлены). Ошибка следующая:

L3 declaration syntax error

эт вот эта строка - ISR( INT0_vect )

как сделать то?:

и еще косяки в файле interrupt.h:

post-152593-0-24816100-1329638919_thumb.png

слева варнинги мол символ неизвесный

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

НО!!! в этом случае, не смотря на то что деление частоты большее,

т.е. таймер должен работать медленней,а моргание происходит чаще!

Все может быть, если документацию недостаточно внимательно читать. А у тебя сравнение происходит точно с регистром OCR1A? должны быть соответствующие биты установлены...

Учение - изучение правил. Опыт - изучение исключений.

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

Пишу в CVAVR у меня не получается прерывание организовать:

пиши вот так:

interrupt [TIM1_OVF] void timer1_ovf_isr(void) {
  TCNT1H=0xFC;
  TCNT1L=0x17; 
//........................
} 	

Пока ты жив, надежда есть.

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

interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Place your code here

  // function entered at falling edge of the kbd clock signal
  // if data bit is the next bit to be read
  // (bit 3 to 10 is data, start, stop & parity bis are ignored
  if((bitcount < 11) && (bitcount > 2)) {

     data = (data >> 1);      

     if (KBD_DATA==1)         // if next bit is 1   
        data = data | 0x80;   // store a '1'
     else
        data = data & 0x7f; // else store a '0'  

  }      
  if(--bitcount == 0) {      // all bits received ?      
          decode(data);       // decode received byte
        bitcount = 11;      // reset bit counter    

   } 
 // kkey  =  data;

     if( data){      DDRC = 0xFF;
          PORTC.5 = 0xFF;
          } 
}
...........................................(тут дефайны всякие...)
interrupt [uSART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
  {
  rx_buffer[rx_wr_index]=data;
  if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
  if (++rx_counter == RX_BUFFER_SIZE)
     {
     rx_counter=0;
     rx_buffer_overflow=1;
     };
  };
}

Вообщем при нажатии любой клавиши клавиатуры диод загорается и при отпускании погасает(как требуется):

if( data){      
DDRC = 0xFF;
PORTC.5 = 0xFF;
          } 

а если так сделаю:

if(data == 0x12){      
DDRC = 0xFF;
PORTC.5 = 0xFF;
          } 

то при нажатии на левый шифт(0x12) нихрена не горит диод! по сути в data должно хранится значение нажатой кнопки в таком виде -> 0x00

хелп !)

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

А у тебя сравнение происходит точно с регистром OCR1A? должны быть соответствующие биты установлены...

в смысле? мы же разрешем прерывание по сравнению?

ldi temp,(1<<OCIE1A) ; разрешение прерывание по сравнению

out TIMSK,temp

Какие то дополнительные биты надо выставлять?

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

Люди а как надо будет работать если микроконтроллер подключен так:

Компьютер - роутер - tcp\ip->rs232 - PIC16F877. на мк прийдет куда непонятных данных?

я просто еще не знаю нахначается ли оп и остальное в преходнике том

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

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

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

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

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

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

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

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

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

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

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

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