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

управление БП через оптрон + PIC16F628A


Пентагрид

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

О-о-о Месье знает толк в извращениях.... :)

@Пентагрид  вытрите нафик простыню: ";ПОДПРОГРАММА REF (пересчёт reg->VRCON)"

У вас reg изменяется от 0 до 24 , тупо создайте массив на 25 элементов и пользуйтесь reg как индексом массива

вся процедура займет 8-10 строк кода.

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

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

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

что как? создать массив? 'это просто, он у вас маленький, поэтому без хитрых заморочек,  чтобы не попасть на переход блоков по 256 слов, помещаем его в начало кода сразу после команды goto start,.

;******************************
; таблица перекодировки
;******************************
ORG	0x010
massiv: 
    ADDWF	PCL, 1
    RETLW  	B'11100000'	;0
    RETLW  	B'11100001'	;1
    RETLW  	B'11100010'	;2
    RETLW  	B'11100011'	;3
    RETLW  	B'11100100'	;4
; и тд
;......
;......
;......
    RETLW  	B'11101111'	;24
end_massiv:
;*******************************

и обращаемся к нему так

  movf reg,w ; помещаем индекс элемента массива в аккумулятор W
  call massiv ; 
 ; по выходу из процедуры
 ; в аккумуляторе W нужное значение

в итоге нужный результат будет получен за 6 машинных циклов (команд)

для полного понимания читаем апнот AN556

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

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

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

@IMXO , большое спасибо, что просветили насчёт этого способа! Жизнь станет намного легче.

 

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

IBP.thumb.GIF.9f922d1c40a737ad7c586d81584257be.GIF

 

 

cyclebutton-xorlw-0_24_massiv.rar

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

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

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

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

cmcon.png.5e3c7aec5e6665afa48b03e03c0bd5b4.png

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

;************************************************
;   Тест работы компаратора и ИОН   *
;   в PIC16F628A.                             *
;************************************************
	list      p=16f628A           ; list directive to define processor
	#include <p16F628A.inc>       ; processor specific variable definitions

	errorlevel  -302              ; suppress message 302 from list file

	__CONFIG   _CP_OFF & DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT 

;#define 
;***** VARIABLE DEFINITIONS
w_temp        EQU     0x7E        ; variable used for context saving 
status_temp   EQU     0x7F        ; variable used for context saving

;**********************************************************************
	ORG     0x000  
      call  init          
	goto    main             
	

	ORG     0x004             ; interrupt vector location
	movwf   w_temp            ; save off current W register contents
	movf	STATUS,w          ; move status register into W register
	movwf	status_temp       ; save off contents of STATUS register

	movf    status_temp,w     ; retrieve copy of STATUS register
	movwf	STATUS            ; restore pre-isr STATUS register contents
	swapf   w_temp,f
	swapf   w_temp,w          ; restore pre-isr W register contents
	retfie                    ; return from interrupt
;**********************************************************
init:
       clrf INTCON
      banksel PIE1
       clrf PIE1
      banksel PORTA
       clrf PORTA
       clrf PORTB 
       movlw (0<<CIS)|(0<<C1INV)|(0<<C2INV)|(.6<<CM0); 6-ой режим (CM2:CM0=110)
       movwf CMCON
      banksel TRISA
       movlw (1<<RA7)|(1<<RA6)|(1<<RA2)|(1<<RA1)|(1<<RA0)
       movwf TRISA
       clrf TRISB
       movlw (1<<VREN)|(1<<VROE)|(1<<VRR)|(.3<<VR0) 
       movwf VRCON 
      
end_init: return
;**********************************************************
main:
      
    	goto	main		  ;loop forever, remove this instruction, for test only

	END                       ; directive 'end of program'

 

 

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

@Пентагрид Оптопара низкочастотная, может просто не успеть отработать импульс, надо на вкл выдавать импульс периода минимум 100 мкс

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

В 05.06.2019 в 21:34, IMXO сказал:

накой нужна "подпрограмма OS"

Действительно, раз ОС только по напряжению, то можно напрямую компаратор к ножкам подключить (так и быстродействие будет максимальным).

В 05.06.2019 в 22:18, РадиоНастройщик сказал:

надо на вкл выдавать импульс периода минимум 100 мкс

Довезу бандуру до осциллографа и проверю этот вариант. Так вроде работает.

 

В 06.06.2019 в 00:04, IMXO сказал:

зачем? вся эта канитель

Можно развить это дело, поставить какой-нибудь 877A с несколькими АЦП и... :

1) запилить особый алгоритм для зарядки разных аккумуляторов в зависимости от типа, возраста и т.п.;

2) программно-управляемый стабилизатор для чего угодно (гальванических ванн, электролизеров);

3) прототипы чего-нибудь с особым законом регулирования (например, ПИД-регулятор для паяльника);

4) собрать автоматический "сниматель ВАХ" радиоламп безо всяких килограммовых трансформаторов, подружить его с ПК по USART, чтобы графики сохранять.

 

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

1 час назад, IMXO сказал:

школьных обработчиков кнопок и хардварных костылей к ним

Просветите. Сам-то пользуюсь чем яндекс послал. Дайте ссылку на архив с фрагментами оптимального кода для всяких операций.

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

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

да собственно нет никаких архивов,  кое-что есть на форуме  микротельных , кое-что осталось на их старом сайте

по кнопкам здесь http://www.microchip.su/showthread.php?p=239079#post239079

 русская документация здесь  http://www.microchip.ru/lit/?mid=1x0 , но думаю вы и сами это знаете.

 

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

33 минуты назад, IMXO сказал:

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

Я вообще не писал на асме ) только некоторые команды .

Недавно для пика нужно было простой кусок кода написать. Был удивлен когда выяснилось что в среде микроси про. Код откомпилированный не работал в МК , а когда его же собрал в мплаб , все завелось. Что ещё интересно в протеусе работал и тот и другой код ))

Есть подозрение что новые чипы от микрочип изменили внутреннюю структуру , что и привело к этому.

Микроконтроллер pic18f1320.

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

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

2 часа назад, Пентагрид сказал:

Просветите

ну на примере вышей схемы, вангую кнопка типа такой

7cf1963963dd474d9c403c8e1a1c02e9_ecbd2100295211e5a5bf78e7d1ddc3dc.jpg

 

,вы что-бы погасить дребезг контактов кнопки повесили на нее конденсатор 10нф , кнопка имеет сопротивление 50мОм , еще 10-30мОм на проводниках , конденсатор заряжен до 5в итого в момент замыкания через кнопку идет импульс тока 60-80А, он из-за индуктивности проводников несколько меньше и длительность его мала , а кнопка максимум рассчитана на 50мА , понемногу подгорает,  увеличивается дребезг и начинает глючить. те чтобы снизить импульсный ток  конденсатора последовательно с кнопкой еще надо и резистор на 100-150ом поставить.

если убрать конденсаторы  ваш алгоритм однозначно будет ловить дребезг тк весь ваш код выполняется за 50-100мкс , а дребезг длится 1-10мс в зависимости от г...ти кнопки.

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

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

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

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

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

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

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

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

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

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

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

    • Это тот самый проект, просто следующий этап задачи - реализовать чтение уже записанных файлов на стороне МК.
    • Когда снова появился интерес к усилителям, тоже хотел всех обмануть, попробовал 7294 в разных схемах, 3886 тоже несколько способов приготовления, вроде и неплохо играет, если ничего другого не слушал, годится. Но червячок сподвиг сделать Натали Хоум, УХ! челюсть отвисла, наслушаться не мог, узнал, что такое сцена в звуке, динамика, детальность, да всё лучше. Вот я всегда и спрашиваю, по сравнению с какими другими УМ играет хорошо расхваливаемый усилитель.
    • @Armenn Хорошо. Сделал резистор на 5 Ом.  Результата два. 1. Если включить блок питания в сеть, а уже потом подключить резистор на 5 Ом в фиолетовый провод, тогда резистор просто будет греться.  2. Если подключить резистор на 5 Ом в фиолетовый провод, а уже потом включить блок питания в сеть, тогда случится следующее: лампочка предохранителя от КЗ засветится (через которую я подключаю БП в сеть), а блок питания начнет пищать. Заснял это на видео -   
    • Ну-вы и сравнили. Вот когда будете строить сварочный инвертор на такую частоту-то там нужно  будет учитывать скин эффект. А на частоты до 75кгц-можно забить, отбить и не принимать во внимание. Тем более-что все стараются аппараты до 200А строить. На кольце плотность тока до 15А на мм ^2, на Ш от 10А на  мм^2 А вентилятор-он все лишние тепло сдует ко льдам в Антарктиде. Проверьте монолит 2,12мм, я таким мотаю СТ. Интересно-что там с ним делается на частотах от 30 до 50кГц? Длинна провода примерно 2 метра-На сердечник Е70 влазит 18 витков
    • Добрый вечер всем!  Проблема следующая: Есть флешка с записанной файловой системой через USB MASS STORAGE DEVICES. При "втыкании"  в порт USB открывается на ПК диск с содержимым. Я подключил библиотеку Fatfs и прописал низкоуровневые функции чтения и записи в файле diskio.c Работаю с файлом так:   disk_initialize(SDFatFs.drv); if(f_mount(&SDFatFs,(TCHAR const*)USER_Path,0)!=FR_OK) { //Error_Handler(); Usart1_Send_String("Error_f_mount!\r\n"); } else { if(f_open(&MyFile,"01.WAV",FA_READ)!=FR_OK) { //Error_Handler(); Usart1_Send_String("Error_open_File1!\r\n"); } else { Usart1_Send_String("open_File_OK1!\r\n"); } if(f_open(&MyFile,"01.wav",FA_READ)!=FR_OK) { //Error_Handler(); Usart1_Send_String("Error_open_File2!\r\n"); } else { Usart1_Send_String("open_File_OK2!\r\n"); UINT testBytes=0; f_read(&MyFile, buff1, 512, &testBytes); sprintf(buf1, "TestBytes=%d\r\n", testBytes); Usart1_Send_String(buf1); Usart1_Send_hex((char*)buff1, 512); Usart1_Send_String("read_File_complite!\r\n"); f_close(&MyFile); } } подправил diskio.c так:   DRESULT disk_read ( BYTE pdrv, /* Physical drive nmuber to identify the drive */ BYTE *buff, /* Data buffer to store read data */ DWORD sector, /* Sector address in LBA */ UINT count /* Number of sectors to read */ ) { DRESULT res; //res = disk.drv[pdrv]->disk_read(disk.lun[pdrv], buff, sector, count); sprintf(buffer0, "sector=%lu\r\n", sector); Usart1_Send_String(buffer0); w25qReadPage(buff, sector*2); w25qReadPage(buff + 256, sector*2+256); res=RES_OK; return res; } #if _USE_WRITE == 1 DRESULT disk_write ( BYTE pdrv, /* Physical drive nmuber to identify the drive */ const BYTE *buff, /* Data to be written */ DWORD sector, /* Sector address in LBA */ UINT count /* Number of sectors to write */ ) { DRESULT res; //res = disk.drv[pdrv]->disk_write(disk.lun[pdrv], buff, sector, count); w25qWritingByUSB(sector, (uint8_t*)buff); res=RES_OK; return res; } #endif /* _USE_WRITE == 1 */ функцию чтения на самом деле пробовал прописывать по разному, все равно не корректно работает... Выдает в отладке такое:   Program start!.... sector=0 // это обращение к функции чтения DRESULT disk_read (); Error_open_File1! sector=0 // это обращение к функции чтения DRESULT disk_read (); Error_open_File2! Что я забыл еще добавить?
  • Похожий контент

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