29 страниц V  « < 27 28 29  
Reply to this topicStart new topic
> Shift-Light своими руками 2
SSh
сообщение 10.4.2019, 12:56
Сообщение #561


Технический Маньяк-Гуру
*******

Группа:
Администраторы
Сообщений: 6971
Регистрация: 3.6.2009
Из: Армения
Вне форума
Авто: Lancer IX, AT

Репутация:   259  


Это какой-то другой код, здесь про кнопку нет никакого упоминания
На нормальной прошивке все работает так, как надо, при превышении оборотов светодиод загорается, при понижении - тухнет. Ну, и, естественно, нажатием кнопки запоминаем отсечку.
Go to the top of the page
¬
Вставить ник в форму быстрого ответа
+Quote Post
SAWA_ENTER
сообщение 10.4.2019, 13:00
Сообщение #562


Начинающий Технический Маньяк
**

Группа:
Технический Маньяк
Сообщений: 9
Регистрация: 9.1.2019
Вне форума
Авто: VAZ2103

Репутация:   0  


Цитата(SSh @ 10.4.2019, 12:56) *
Это какой-то другой код, здесь про кнопку нет никакого упоминания

а это не про кнопку
IF SETB = 0 THEN
WRITE 0, PERIOD.Byte0
WRITE 1, PERIOD.Byte1
?
Go to the top of the page
¬
Вставить ник в форму быстрого ответа
+Quote Post
SSh
сообщение 10.4.2019, 13:06
Сообщение #563


Технический Маньяк-Гуру
*******

Группа:
Администраторы
Сообщений: 6971
Регистрация: 3.6.2009
Из: Армения
Вне форума
Авто: Lancer IX, AT

Репутация:   259  


Да, видимо был невнимателен sad.gif
Но про этот код я ничего не помню, вот, вроде правильный, нашел в архивах
Код
'*****************************
'* Name    : ShiftLight.bas  *
'* Author  : SSh             *
'* MCU     : PIC12F629       *
'* OSC     : Internal        *
'*****************************
' 1-led release
@ DEVICE PIC12F629,intrc_osc_noclkout 'Set oscillator - internal  
DEFINE OSC 4           ' Internal Freq. 4 MHz

TACHO     var GPIO.0
LED_HI    var GPIO.1
LED_LO    var GPIO.2
SETB      var GPIO.4
BIPPER    VAR GPIO.5

HPULSE    VAR WORD
LPULSE    VAR WORD
PERIOD    VAR WORD
STORED    VAR WORD
FIRST     VAR BYTE

TRISIO = %010001                      
CMCON  = %00000111        
GPIO  = 0
CLEAR

main:
READ 0, STORED.Byte0
READ 1, STORED.Byte1

   pulsin TACHO, 0, LPULSE
   pulsin TACHO, 1, HPULSE
   PERIOD = LPULSE+HPULSE

     IF SETB = 0 THEN
        WRITE 0, PERIOD.Byte0
        WRITE 1, PERIOD.Byte1
     ENDIF

     IF PERIOD = 0 THEN
        LED_HI   = 0
        LED_LO = 0
        GOTO main
     ENDIF

     IF PERIOD < STORED THEN
        SOUND BIPPER,[120,10]
             IF FIRST = 0 THEN
                LED_HI = 1
                LED_LO = 0
                PAUSE 100
                FIRST = 1
             ENDIF
        LED_HI = 0
        LED_LO =1
     ELSE
        LED_HI = 0
        LED_LO = 0
        FIRST = 0
     ENDIF

goto main
END

Код под 629-й пик, для 675 помимо установок надо еще отключить АЦП
ANSEL = 0

Go to the top of the page
¬
Вставить ник в форму быстрого ответа
+Quote Post
SAWA_ENTER
сообщение 10.4.2019, 13:09
Сообщение #564


Начинающий Технический Маньяк
**

Группа:
Технический Маньяк
Сообщений: 9
Регистрация: 9.1.2019
Вне форума
Авто: VAZ2103

Репутация:   0  


Цитата(SSh @ 10.4.2019, 13:06) *
Да, видимо был невнимателен sad.gif
Но про этот код я ничего не помню, вот, вроде правильный, нашел в архивах
Код
'*****************************
'* Name    : ShiftLight.bas  *
'* Author  : SSh             *
'* MCU     : PIC12F629       *
'* OSC     : Internal        *
'*****************************
' 1-led release
@ DEVICE PIC12F629,intrc_osc_noclkout 'Set oscillator - internal  
DEFINE OSC 4           ' Internal Freq. 4 MHz

TACHO     var GPIO.0
LED_HI    var GPIO.1
LED_LO    var GPIO.2
SETB      var GPIO.4
BIPPER    VAR GPIO.5

HPULSE    VAR WORD
LPULSE    VAR WORD
PERIOD    VAR WORD
STORED    VAR WORD
FIRST     VAR BYTE

TRISIO = %010001                      
CMCON  = %00000111        
GPIO  = 0
CLEAR

main:
READ 0, STORED.Byte0
READ 1, STORED.Byte1

   pulsin TACHO, 0, LPULSE
   pulsin TACHO, 1, HPULSE
   PERIOD = LPULSE+HPULSE

     IF SETB = 0 THEN
        WRITE 0, PERIOD.Byte0
        WRITE 1, PERIOD.Byte1
     ENDIF

     IF PERIOD = 0 THEN
        LED_HI   = 0
        LED_LO = 0
        GOTO main
     ENDIF

     IF PERIOD < STORED THEN
        SOUND BIPPER,[120,10]
             IF FIRST = 0 THEN
                LED_HI = 1
                LED_LO = 0
                PAUSE 100
                FIRST = 1
             ENDIF
        LED_HI = 0
        LED_LO =1
     ELSE
        LED_HI = 0
        LED_LO = 0
        FIRST = 0
     ENDIF

goto main
END

Код под 629-й пик, для 675 помимо установок надо еще отключить АЦП
ANSEL = 0

Про ацп знаю, вечером попробую, но сомневаюсь что поможет, уже все прошивки из темы перепробовал, результат примерно одинаков.
Go to the top of the page
¬
Вставить ник в форму быстрого ответа
+Quote Post
knyazevpit
сообщение 12.10.2019, 15:45
Сообщение #565


Новичок
*

Группа:
Новичок
Сообщений: 2
Регистрация: 12.10.2019
Вне форума
Авто: Audi A6 2.6 Quattro 1997

Репутация:   0  


Здравствуйте. Будет ли первый вариант шифт-лампы работать в диапазоне частот 1-50Гц?
Go to the top of the page
¬
Вставить ник в форму быстрого ответа
+Quote Post
SSh
сообщение 12.10.2019, 18:02
Сообщение #566


Технический Маньяк-Гуру
*******

Группа:
Администраторы
Сообщений: 6971
Регистрация: 3.6.2009
Из: Армения
Вне форума
Авто: Lancer IX, AT

Репутация:   259  


Пришлось кое-что повспоминать... 9 лет прошло...
Дискретность измерения периода для тактирующей частоты 4 МГц равна 10 мкс. Отсюда, верхняя измеряемая частота равна 100 кГц. Теперь о нижней. Здесь не все однозначно. Т.к. переменная, в которую пишем период у нас типа WORD, то наибольшее число измерений может быть равным 65535, а значение 655350 мкс. Получается, что, если измеряемые импульсы представляют собой меандр (длит. импульса равна длит. паузы), то наименьшее измеряемое значение будет равно 655350+655350 = 1310700 мкс = 1.3 сек, что соответствует частоте порядка 0,8 Гц. А если скважность импульсов (отношение периода к длительности) или слишком большая или слишком маленькая, то или сам импульс или пауза не "поместится" в переменную, и нижний предел будет ограничен чуть большим значением, порядка 1.5-2 Гц.
Думаю, ничего не напутал... я уже порядком подзабыл все эти дела
Go to the top of the page
¬
Вставить ник в форму быстрого ответа
+Quote Post
knyazevpit
сообщение 12.10.2019, 18:50
Сообщение #567


Новичок
*

Группа:
Новичок
Сообщений: 2
Регистрация: 12.10.2019
Вне форума
Авто: Audi A6 2.6 Quattro 1997

Репутация:   0  


Цитата(SSh @ 12.10.2019, 18:02) *
Пришлось кое-что повспоминать... 9 лет прошло...
Дискретность измерения периода для тактирующей частоты 4 МГц равна 10 мкс. Отсюда, верхняя измеряемая частота равна 100 кГц. Теперь о нижней. Здесь не все однозначно. Т.к. переменная, в которую пишем период у нас типа WORD, то наибольшее число измерений может быть равным 65535, а значение 655350 мкс. Получается, что, если измеряемые импульсы представляют собой меандр (длит. импульса равна длит. паузы), то наименьшее измеряемое значение будет равно 655350+655350 = 1310700 мкс = 1.3 сек, что соответствует частоте порядка 0,8 Гц. А если скважность импульсов (отношение периода к длительности) или слишком большая или слишком маленькая, то или сам импульс или пауза не "поместится" в переменную, и нижний предел будет ограничен чуть большим значением, порядка 1.5-2 Гц.
Думаю, ничего не напутал... я уже порядком подзабыл все эти дела

Спасибо за развернутый ответ. Будем экспериментировать.
Go to the top of the page
¬
Вставить ник в форму быстрого ответа
+Quote Post

29 страниц V  « < 27 28 29
Fast ReplyReply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0