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

Bugrim

Members
  • Постов

    235
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Bugrim

  1. Bugrim, а отверстие HD на PC-шных дискетах не пробовали заклеить?

    Так я и говорю, что не дискеты, а обычные ПСшные дисководы не подходят. Когда то дисководы на это оборудование приобретала фирма по спец заказу.

  2. Тема конечно специфическая. У нас на предприятии применяются до сих пор дисководы, установленные на электроэрозионных станках, да и еще на 720кБ. Дисководы там специфические, в чем отличие от ПСишных, не знаю, но пробовали не подходит. Рано или поздно дисководам настанет гаплык, тогда эта тема совсем актуальна станет, по крайней мере для меня.

    Но не могу понят это реклама или что? Схема есть, а вот прошивка? И как на SD записывать, какой объем? Зачем тат 7-и сегментный индикатор?...

  3. Вроде бы ничего военного, схема с общим катодом. Хотя резистор в базе великоват, я бы снизил до 1кОм. Токоограничивающие резисторы на сегменты разрядов зависят от частоты и времени подцветки, так что их проще определить опытным путем - при достижении необходимой яркости свечения.

  4. Добрый день.

    Прошу совета. МК - PIC16F876A. Среда - MPLAB. Компилятор - ХАЙТЭК. Работа ШИМ. Возникает необходимость при возникновении прерывания прервать работу ШИМ и на выходе установить 0. Каким образом наилучше это сделать?

    И по ходу - при отключении работы TMR2 протеус продолжает упорно выдавать сигнал ШИМ (смотрю осцилографом), в жизни это так или это глюк протеуса?

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

  5. Это понятно. Но лучше заряжать аккумулятор от 3В-преобразователь-зарядка 14В ток 50мА (итого получаем Рвых=0,7Вт, соответственно ток входа, 230мА, плюс КПД, итого ток входа около 260мА), чем просто выбрасывать в воздух. Ведь ждать пока ветер подует и раскрутит генератор до высоких потенциалов можно и неделю, а так заряжает потихоньку а я рад буду. Мне много не надо, всего 20Вт/сутки.

  6. Говоря о том, что он должен выдавать 1А, я имею в виду что выходной каскад рассчитан на нагрузку до 1А и не факт что я ее буду постоянно так нагружать. И 1-6В, которые преобладают по времени (т.е. генерируются наиболее длительное время по сравнению с другим напряжением), куда денеш. Так пусть они хоть с КПД в 30%, но работают в нужном направлении, а не пропадают.

  7. Добрый день.

    Прошу бывалых о помощи. Имеется источник напряжения (врать не буду - ветряк). Диапазон генерируемого напряжения составляет от 0В до 16В переменного тока, частота напряжения растет при увеличении напряжения. При максимальном напряжении в 16В достигает 40Гц. Хотелось бы из этого безобразия генерировать стабилизированные 14В постоянного напряжения во всем диапазоне. Далее на зарядку АКБ, но с этим попроще. Сейчас на первом этапе стоит вопрос о специфическом блоке питания стабилизированных 14В с большим диапазоном питающего напряжения. Ток нагрузки - до 1А.

    За ранее благодарен.

  8. Страница 91 DS40300b - это русский даташит для PIC16F628A. Рассматривается вопрос тактирования МК от внешнего генератора. Я полагаю, что тактирование нескольких МК таким образом вполне допустимо.

  9. Можно ли инверсией сигналов в настройках программатора решить этот вопрос?

    На сколько я понимаю то нет. Скорей всего провода в кабеле просто запаяны на разные ноги в разъемах, а это инверсией сигнало не лечится. Прозвони их для верности.

  10. Добрый вечер. Подскажите, как можно увидеть куда хай тек использует озу. Я понимаю, что для своих нужд, он выделяет некоторою оперативную память МК, однако если я трачу (объявляю) на переменные в общей сложности 8 байт, а, он пишет что затрачено 29 байт, то становиться интересно. Вот и хочется взглянуть куда он их тратит.

    Задействует целых 19 байт для своих целей на выражение

    unsigned long mgnov_max;
    .......
    mgnov_max=(mgnov_max*25)>>9;
    ........
    

    такие затраты это в порядке вещей?

  11. Подключить .cof файла получилось. Спасибо.

    Еще одно решение нашел на просторах инета. С похожей ситуацией сталкивались при изменении константы RC генерптора, говорят баг протеуса, для выхода из данной ситуации прописывают код:

    #define _OSCCAL_DATA(w)											 \
    		 asm(" psect absdata,abs,ovrld,class=CODE,delta=2 ");\
    
    		 asm(" org 0x3ff							 ");\
    		 asm(" retlw "___mkstr(w)						 )
    _OSCCAL_DATA(0x11); // константа для OSCCAL
    

    Правда с моими познаниями языка СИ я с трудом догадываюсь что здесь хотят сказать, но помогает.

  12. Добрый вечер, не могу сообразить. Пытаюсь запустить АЦП в PIC16F676. Инициализацию вроде бы провел, что бы проверить пытаюсь промоделировать в протеусе. Так вот в нем, из MPLAB, программа вообще не хочет отрабатывать, даже курсор на main не выходит, происходит переполнение стека. Как только ставлю отлаживать в MPLAB, то вроде бы начинает работать как положено, но вот в этом режиме АЦП достоино не промоделируеш. Почему отладка в протеусе не дает отрабатывать программе, что я не учел?

    Baryer.rar

  13. Добрый день. Прошу Вашего совета с следующем вопросе. Необходимо собрать вольтметр 100-400В, ссылок по теме полно (например http://alex-exe.ru/radio/microcontrollers/atd-pic16f676-7seg-plus/) , однако, в документации на PIC сказано: "Максимальное рекомендуемое значение внутреннего сопротивления источника аналогового сигнала 10кОм". А для измерения напряжения используют резистивный делитель, в котором сопротивления превышают данную рекомендацию. Как это влияет на точность преобразования АЦП? Или я что то не так понимаю.

  14. 2. Не совсем так. В асме для некоторых программ прилагается информация о максимальном количестве тактов выполнения, то есть, при любых исходных данных функция (подпрограмма) не превысит данное количиство тактов. Зная такие значения можно рассчитать примерное время выполнения кода. Существует ли такая характеристика для си функций. К примеру максимальное количество тактов при выполнении команды умножения типа char*char или int*int.

  15. Добрый день.

    1. Где то мимолетом читал, что хай тек (или вообще с) при первоначальном пуске производит очистку не всех используемых регистров. У меня в функции применяется статическая переменная, важно чтобы она обнулялась, а точнее, чтобы она имела первоначальное значение заданное мной.

    2. Кто как выходит с таких положений. Организация программы следующая: прерывание от таймера изменяет значение флага определенного мной; флаг сбрасывается основной программой и разрешает произвести выполнение ряда функций. При написании программы на асме, примерно можно высчитать время выполнения каждой функции, а вот с си это сложнее. И вот, если время выполнения данных функций, при каких - то сложившихся обстоятельствах, будет больше чем время между прерываниями от таймера, то будет накапливаться запоздание и в конечном итоге потеря одной обработки прерывания таймера.

    Или, необходимо измерять действующее значение напряжения сети, для достижения необходимой точности выбираем количество дискретизации (количество измерения мгновенных значений), время реагирования заданно. Далее с полученными значениями производим математические манипуляции, возведение в квадрат, сложение, извлечение квадрата, деление. Так вот, как узнать максимальное время выполнения математических операций, ведь возведение в квадрат, предположим числа 5 и числа 231 займет разное время и в заданное время реагирования можно и не вложится.

  16. какое действие ему (компилятору) делать ?

    Не понял вопроса. Не корректно записал, надо так :

    razrad=(razrad<<1);

    ?

    Так так тоже не то:

     if (razrad==0b01000000)
      razrad=1;
     else
     razrad=(razrad<<1);
    }
    

    103:				 if (razrad==0b01000000)
      0EF    087A	 MOVF 0x7a, W
      0F0    3A40	 XORLW 0x40
      0F1    1D03	 BTFSS 0x3, 0x2
      0F2    28F6	 GOTO 0xf6
    104:				  razrad=1;
      0F3    3001	 MOVLW 0x1
      0F4    00FA	 MOVWF 0x7a
      0F5    28DC	 GOTO 0xdc
    105:				 else
    106:				 razrad=(razrad<<1);
      0F6    1003	 BCF 0x3, 0
    107:			    }
    

    А если вообще по программе, то razrad участвует как аргумент функции, которая вызывается выше данного участка кода.

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