6 748 сообщений в этой теме

IMXO    1 358

и сколько получится при приведении 290 из u_int в u_char ???

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
DmitryS    28

Так У меня там перед приведением условие есть

if (v > 254) {v = 255;}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 358

пропустил...  а в функции чтения буфера есть отключение прерывания , а включения нет , так и задумывалось?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
DmitryS    28

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UTSource

Найдите миллионы труднодоступных

электронных компонентов

IMXO    1 358

короче сим утверждает что ADCL максимальное значение = 200

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
DmitryS    28

Ну да , а почему ? Третий вечер чешу репу , не могу понять ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 358

может модель кривая, попробуй ИОН переключить на +пит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lexter    275
2 часа назад, DmitryS сказал:

создано виртуальное устройство в Протеусе 7.10

Отлаживать за вас проект чего-то лень... Но по-моему, что-то действительно  напутано в "упоре" в 255 при вычислении числа для OCR2. По вашей формуле переполнение получается при 223 с АЦП. А 223 и соответствует где-то 50 с чем-то градусам...

В

2 часа назад, DmitryS сказал:

if (v > 254) {v = 255;}

какие типы сравниваются? Может переполнение уже до этого сравнения?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 358
13 минуты назад, Lexter сказал:

что за числа в регистрах при 51, 52

а они тут причем? у него данные АЦП в регистре ADCL увеличиваются только до 200 при 0,5в на входе,  при увеличении напряжения выше 0,5в в регистре остается значение 200. регистр ADCН вообще всегда равен 0.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lexter    275
3 минуты назад, IMXO сказал:

у него данные АЦП в регистре ADCL увеличиваются только до 200

Не увидел.

Тогда эту бредятину искать очень трудно...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
DmitryS    28
7 часов назад, Lexter сказал:

какие типы сравниваются? Может переполнение уже до этого сравнения?

    

Скрытый текст

 

#define MIN_PWM 50  // вентиляторы должны всегда вращаться , значение соответствующее примерно 20% шим
     #define MIN_ADC 120  //минимальное значение AЦП , соответствующее 30 градусам
    
     unsigned int v = MIN_PWM;
     unsigned int temperature;

     temperature = ADC_GetBuf(); //читаем програмный буфер АЦП
    
     if (temperature < MIN_ADC) {temperature = MIN_ADC;}
        
     v = MIN_PWM+((temperature - MIN_ADC)*2);
    
     if (v > 254) {v = 255;}
            
     if (temperature < MIN_ADC ) {v = MIN_PWM;}
        
     OCR2 = (unsigned char)v;

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
DmitryS    28

@COKPOWEHEU  , Спасибо !  Дело все было в не подключенном питании AVCC  в протеусе . Что то проморгал дурень старый . Но я сегодня вечером хотел собрать все в железе на макетке , там то я бы подключил питание по любому  . 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
BiBOX    3

а где у atmega1284p выставляется частота,при работе от внутреннего генератора?

2018-08-09_20-58-23.png.dd8a58b99c4367dd41cacbf7d5ce6268.png

У атмеги8 помню были типа intRC_8_4_2_1MHz, а тут нет(

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
snn_krs    45

Внутренний генератор на одну частоту 8 МГц. И есть делитель на 8 - CKDIV8. Есть еще внутренний низкочастотный генератор на 128 кГц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
19 часов назад, snn_krs сказал:

...И есть делитель на 8 - CKDIV8...

Это только один из вариантов установки предделителя тактовой частоты (System Clock Prescaler) в регистре SLKPR, который никто не запрещает устанавливать программно в 1, 2, 4, 8, 16, 32, 64, 128 и 256.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Jeniok    83

Есть оболочки с ручным выбором частоты програмирования? Случайно выставил работу attiny2313 от внутреннего генератора на частоту 16 kHz (int RC 128 kHz + DIV8). Программа работает, но программатор (USBASP) не видит чип, джампер slow не помогает, я так понимаю нужно снизить скорость до 2-4 kHz , но как?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Jeniok сказал:

...программатор (USBASP) не видит чип, джампер slow не помогает, я так понимаю нужно снизить скорость до 2-4 kHz , но как?

"Пересесть" на другой программатор.

avrisp.jpg.41e427014be614611063fe1474e8f864.jpg

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Jeniok    83

Эхх, опять програматор собирать, хотя может обойдусь каким нибудь fuse bit doctor' ом. Мне всегда свистка usbasp хватало, собирать очередной програматор...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
BiBOX    3

Подскажите,пожалуйста.

Если я сделаю так 

uint32_t col=15;

for (uint8_t i=0  ;   i < col  ;  i++)

{

      const uint8_t index=(i*col)+7 ;

после каждого прохода (i=0, i=1, i=2 и тд) цикла,index будет увеличиваться(как я понимаю переинициализироваться  ) или пока цикл не закончится, index будет иметь значение (0*15)+7=7

Конечно я понимаю,что глупость спрашиваю,ибо тогда всегда будет значение индекса 7,но всё же для успокоения души прошу подсказки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mikolka6    0

Ребят может кто поможет. Нашел схемку RGB контролера для внедрения в приборную панель автомобиля, вот и я решил её внедрить (исходники и схема в зипе). Траванув и собрав плату, оттестив её на RGB ленте, но не приняв во внимание имеющиеся ЗИП в процессе переделки столкнулся с проблемой. По 3 каналу в силу обстоятельств, мне нужно использовать имеющиеся у меня мини светодиоды с общим КАТОДОМ. Варианта в этом случае я так понимаю два, или поменять в прошивке 

  
if (tick < red_pwm_3)
    PORTC |= (1 << LED_RED_3);
  else
    PORTC &= ~(1 << LED_RED_3);

  if (tick < green_pwm_3)
    PORTC |= (1 << LED_GREEN_3);
  else
    PORTC &= ~(1 << LED_GREEN_3);

  if (tick < blue_pwm_3)
    PORTC |= (1 << LED_BLUE_3);
  else
    PORTC &= ~(1 << LED_BLUE_3);

на 

if (tick < red_pwm_3)
    PORTC &= ~(1 << LED_RED_3);
  else
    PORTC |= (1 << LED_RED_3);

  if (tick < green_pwm_3)
    PORTC &= ~(1 << LED_GREEN_3);
  else
    PORTC |= (1 << LED_GREEN_3);    

  if (tick < blue_pwm_3)
    PORTC &= ~(1 << LED_BLUE_3);
  else
     PORTC |= (1 << LED_BLUE_3);

естественно в место N - канального,  нужно поставить P- канальный полевик. Или же воспользоваться инвертором к примеру на биполярнике и полевике, что я тоже испробовал. Но в силу обстоятельств по крывож.. ости рук и крывезны мозга, умудрился спалить мегу пока пробовал инвертировать канал. В общем, с начала я не смог переделать прошивку ибо в AVR Studio 7 выдавал две ошибки @echo Building file: $< и #include "hsv_to_rgb.h" и вроде когда, что-то стало получаться, спалил выход меги в процессе экспериментирования с P-канальным полевиком (ибо протеус эмуляцию отказывается запускать)! В общем, испробовал такие вариации схема в PDF на 3 канал - верхняя правая это штатная, верхняя левая это я пробовал без изменения прошивки, а нижняя правая это для переделанной прошивки. Но чет я далее экспериментировать очку.. боюсь в общем, ибо МК по третьему каналу "испустил сизый дым". В общем выручайте, афтомобил без приборки, может кто соберёт прошивку и нарисует схему с правильным конечным ключом. Плизз. Выручайте парни.

rgb_atmega8_v1_2.rar

New Project.PDF

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 358

ответ на вопрос найдешь в этой теме http://forum.cxem.net/index.php?/topic/115588-555й-таймер-не-знаю-как-правильно-подключить-устройство/&tab=comments#comment-1356203

ЗЫ и прошивку оставь в покое

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mikolka6    0

То-есть просто инвертировать выход на биполярнике и полевике. Прошивку оставить в стоке. Понял, спасибо. 

 

Поделиться сообщением


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

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

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

  Разрешено не более 75 смайлов.

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

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

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

Загрузка...

  • Похожие публикации

    • Автор: qwer qwer
      Требуется разработать блок управления сплит-системой с функцией обучения по ИК каналу через RS-485 интерфейс на базе МК STM32. Есть ТЗ и список команд управления. Разработка в 2 этапа: 1-разработка принципиальной электрической схемы с указанием элементов на основе структурной из ТЗ (можно в карандаше), 2-написание ПО для МК STM32 в соответствии с ТЗ и списком команд. Оплата поэтапно. Кому интересно - уточняйте детали и оценивайте стоимость работы.
      Блок управления по ИК каналу Описание.docx
      Команды MODBUS.xlsx
    • Гость Keil
      Автор: Гость Keil
      Добрый день, ситуация такая - попались мне под руку куча рассыпухи в числе которых достаточное количетво тинек и прочей лабуды - пытась хеловродить, попробовал взять готовый пример работы тиньки и лсдишника здесь также имею ардуинку как  Айсипи и чудесно мигаю светодиодом на мк прошитом ею же  так вот при попытке залить код который по ссылке чуда не произошло.
      курение мануалов лсдишника дало понять лиш одно что старший и младший биты одинаковы с лсдишником со статьи - лсдишник рабочий (игрался контрастом одной строки через V0  и потенциометр ) - как в прочем и мк, было задумано ковырнуть все это в протеусе и атмельстудии, но результатом не увенчалось. Пожалуйста тыкните носом что да где не так.
      fail.zip
    • Автор: В гостях у Михалыча
      Приветики. На днях купил колонку сгоревшую под ремонт. При нажатии на кнопку включения сразу же нагревается микросхема (B6THM1016 1516arz) В интернете вообще нет ничего о ней. Как я понял, это контроллер сенсорных кнопок и питания (даже если включить зарядку, то микруха не греется, пока не нажмешь на кнопку), ибо есть еще две микросхемы, одна из них усилитель, а вторая-блютуз. Может ее получится как-то заменить или выкинуть вообще? 


    • Автор: Сергей Скопинцев
      Нужно разработать циклическую программу сбора информации от 10 измерительных источников. Период повторения цикла - одна секунда
      Источники:
       М - тензопреобразователь давления. Мостовая схема питается постоянным напряжением, выходной сигнал от 0 до 100 милливольт
       Т, ТМ, ТА- три канала измерения изменения напряжения в диапазоне от 400 до 600 милливольт (тоже нужен мост?)
       ЛМ - анализатор максимума напряжения (от 0 до 5 Вольт) по 10 точкам более-менее распределённых в измерительном цикле. Найденный максимум потом должен участвовать в анализе, постепенно уменьшаясь на 20% каждый цикл
       ВЛ - измерить напряжение на Малой емкости (50 пФ) с помощью емкостного делителя по алгоритму:
                         Снять Землю со средней точки емкостного делителя, подать на емкостной делитель положительный Импульс
                         Замерить нужное нам напряжение в средней точке делителя
                         Снять положительный Импульс с делителя, посадить на землю среднюю точку делителя
      - остальные каналы К7...К10  служебные
      Разрядность данных - 16 двоичных.

      Результаты писать на MicroSD текстовым файлом, на первом месте в строке текущее время в секундах, остальные каналы разделены пробелами
      Порядок каналов:
      Т - М -ТМ - Вл - ЛМ -...
      Коэффициенты усиления по каждому информационному каналу должен иметь возможность изменить оператор по формуле y = Ax + B
      Прибор автономный, питается от + 5 Вольт.