User Tag List

Показано с 1 по 10 из 64

Тема: Новогодний 1816ВЕ35

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    12.07.2016
    Адрес
    г. Тюмень
    Сообщений
    40
    Спасибо Благодарностей отдано 
    26
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    17 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    А кто что делал на этом 1816ВЕ35 вообще?
    Я делал термометр
    https://github.com/rcgoff/therm8048

    Запрограммирован интерфейс 1wire с DS18B20 (немного переусложнен, можно было бы читать при инициализации presence pulse только один раз, я читаю два раза)
    Запрограммирован двухпроводной интерфейс с со стандартным текстовым ЖКИ на HD44780 по схеме наподобие этой


    Для строба сдвигового регистра использован выход строба порта-расширителя, так что на весь функционал задействовано только 2 линии портов МК: P1.0 под DS18B20 и P2.1 под данные ЖКИ.


    Цитата Сообщение от Tronix Посмотреть сообщение
    Зимой тоже баловался с ВЕ39.
    Интересно бы на код посмотреть! И какого он объема вышел

    - - - Добавлено - - -

    Цитата Сообщение от Tronix Посмотреть сообщение
    Здесь же мне нужно было дробную часть умножить на 10, пришлось крутить влево по нескольку раз, да все это еще с расширением в 16-битное значение
    А не короче было сделать что-то вроде:
    Код:
    ;умножение числа в аккумуляторе на 10
    ;на выходе - 16-бит число в r4 и a
                 mov r2,a
                 mov r3,#9
                 mov r4,#0
    loop:      add a,r2
                 jnc skip
                 inc r4
    skip:      djnz r3,loop
    Последний раз редактировалось RCgoff; 04.05.2023 в 11:26.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от RCgoff Посмотреть сообщение
    Интересно бы на код посмотреть! И какого он объема вышел
    32Кб отборного *****кода на асме. В скомпиленном виде 1974 байта. Ну если и вправду интересно - пожалуйста, в прикрепленном файле, но там реально *****код и уже через неделю мне самому в нем ничего не понять.


    Цитата Сообщение от RCgoff Посмотреть сообщение
    А не короче было сделать что-то вроде:
    Да может и короче, а может я уже и переделал чтение температуры по сравнению со скриншотом выше -) Дела давно минувшие, я ж не зря говорю что через неделю уже с трудом вообще можно понять там что к чему. Сделал, работают, ну и все, забыли.

    Но помню лишь одно - об какой-либо оптимизации и речи не шло, так как ВЕ39 все-таки во-первых в два раза быстрее чем ВЕ35, и поэтому сколько там миллисекунд (или даже секунд) будет вычисляться температура, или любое другое действие - абсолютно все равно, так как режимы отображения ВРЕМЯ или ТЕМПЕРАТУРА меняются раз в минуту примерно. А все остальное время проц практически сидит и курит бамбук - ну кнопачке там опрашивает, в таймер выпадает для счета миллисекунд и тд.
    Вложения Вложения
    • Тип файла: zip clock.zip (7.9 Кб, Просмотров: 83)

    Этот пользователь поблагодарил Tronix за это полезное сообщение:

    RCgoff(03.05.2023)

  4. #3

    Регистрация
    12.07.2016
    Адрес
    г. Тюмень
    Сообщений
    40
    Спасибо Благодарностей отдано 
    26
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    17 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Tronix Посмотреть сообщение
    32Кб отборного *****кода на асме. В скомпиленном виде 1974 байта. Ну если и вправду интересно - пожалуйста, в прикрепленном файле, но там реально *****код
    Заимствовал Ваш код вычисления CRC для датчика DS18B20. При этом сократил его по длине на 15 байт.

    Было:
    Код:
    crc8dallas:
    	mov r2,#0
    	mov r7,#8		; scrachpad len cntr
    	mov r0,#scrach
    rr_rot:
    	xch a,r2
    	xrl a,@r0
    	xch a,r2
    	mov r6,#8		; for (i = 0; i < 8; i++)
    rr_inner:
    	mov a,r2
    	anl a,#1
    	jz rr_shr
    	xch a,r2
    	clr c
    	rrc a
    	xrl a,#08Ch
    	xch a,r2
    	jmp rr_next
    rr_shr:	
    	xch a,r2
    	clr c
    	rrc a
    	xch a,r2
    rr_next:
    	djnz r6,rr_inner
    	inc r0
    	djnz r7,rr_rot
    
    	xch a,r2
    	ret
    Стало:
    Код:
    crc8dallas:
    	clr a
    	mov r7,#8		; scratchpad len counter
    	mov r0,#scratch
    crc_nxbyte:
    	xrl a,@r0
    
    ;----------one byte loop
    	mov r6,#8		; for (i = 0; i < 8; i++)
    crc_inner:
    	clr c
    	rrc a
    	jnc crc_nxbit           ;jump if former acc.0=0 (no XOR)
    	xrl a,#08Ch             ;1000.1100 - polynomial coeffs in inverted order
    crc_nxbit:
    	djnz r6,crc_inner
    ;----------end of one byte loop, r0:=byte-CRC
    
    	inc r0
    	djnz r7,crc_nxbyte
    	ret
    Возможно, кому-то это пригодится.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Новогодний мини-ZX конкурс :)
    от zebest в разделе События
    Ответов: 18
    Последнее: 31.12.2014, 22:03
  2. Ищу новогодний гифт
    от jerri в разделе Демо
    Ответов: 6
    Последнее: 18.01.2010, 16:45
  3. Новогодний гифт!!
    от newart в разделе Демо
    Ответов: 13
    Последнее: 06.01.2008, 00:04
  4. Московский новогодний сисопник
    от STS в разделе События
    Ответов: 9
    Последнее: 31.12.2007, 21:57

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •