Оружие будущего

Форум про оружие будущего
Текущее время: Вс июн 24, 2018 12:42 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 224 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11, 12  След.
Автор Сообщение
 Заголовок сообщения: Re: 4 ступени и 3х миллиметровый снаряд. Посмотрим что выйде
СообщениеДобавлено: Пн авг 08, 2011 5:33 am 
Аватар пользователя

Зарегистрирован: Чт авг 16, 2007 6:19 am
Сообщений: 514
Цитата:
Это для тех кто еще не почувствовал силу низкоуровневого программирования. :-)

Попрограммируешь годик на асме, потом вернешься к сям, потому как писать на сях быстрее и удобнее. Особенно если учесть то, что 70% чуть ли не любой программы не требует вообще никакого быстродействия. Ну а в остальных местах будет работать на 20-30% медленнее, зато пишется сразу и легко.
Если так низкоуровневое нравится, то сходи на васм.
Нет, асм это очень интересно и круто, но это если хочется программировать. А если охота "сделать", а не делать, то тут си вам лучший друг.
ЗЫ: решил себе часики-будильники с "дозиметром" забабахать - так пишу на сях. Корпус уже есть, кошерный :D.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: 4 ступени и 3х миллиметровый снаряд. Посмотрим что выйде
СообщениеДобавлено: Пн авг 08, 2011 10:15 am 
In Trance
Аватар пользователя

Зарегистрирован: Сб дек 22, 2007 2:45 pm
Сообщений: 4880
Откуда: Украина, Днепропетровск
си отупляет trollface.jpg
Piton, а почщиму у тебя так вырвиглазно написанны подпрограммы в инклуде? Нельзя было их в одном файле с основной программой написать?

_________________
ZADROT MODE COMPLETE
MISSION PASSED


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: 4 ступени и 3х миллиметровый снаряд. Посмотрим что выйде
СообщениеДобавлено: Пн авг 08, 2011 8:26 pm 
Аватар пользователя

Зарегистрирован: Вт сен 23, 2008 10:59 am
Сообщений: 1588
Откуда: Moskva
Axon писал(а):
Нельзя было их в одном файле с основной программой написать?

Хе... конечно можно. НО мне так проще писать код, когда открываеш нескольно закладок (как минимум три, это основная программа, файл присвоения имен и саму подпрограмму над которой работаеш) и между ними переключаться. В идеале на каждую подпрограмму свой файл можно делать и подшивать их в удобные места.
На мой взгляд писать весь код по порядку в одном файле очень тяжело. Или скакать по всей портянке выискивая необходимый кусок программы или подпрограмму тоже не але.

Скажу честно, я давно не испытывал такого удовольствия от программирования. :-)

_________________
Извините за грамотность, сызмальства не обучен. ;-)
P.S. Это я не извиняюсь, это я предупреждаю.

http://www.facebook.com/piton.kaa.10


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: 4 ступени и 3х миллиметровый снаряд. Посмотрим что выйде
СообщениеДобавлено: Пн авг 08, 2011 10:52 pm 
In Trance
Аватар пользователя

Зарегистрирован: Сб дек 22, 2007 2:45 pm
Сообщений: 4880
Откуда: Украина, Днепропетровск
Цитата:
На мой взгляд писать весь код по порядку в одном файле очень тяжело. Или скакать по всей портянке выискивая необходимый кусок программы или подпрограмму тоже не але.

Вот как я пишу, метки с начала строки, всё остальное после табуляции. В начале пишу подпрограммы, потом основную и оттуда вызываю нужные подпрограммы. Комментов тут мало, обычно больше пишу.
Код:
;*****************************
; Автор: Axon                *
; Дата: 26.07.2011           *
; Версия: 1.0                *
; Имя файла: Counter         *
; Для AVR: Mega16            *
; Тактовая частота: 8MHz     *
;*****************************

; Выполняемые функции: Счетчик нажатий с диапазоном счета от 0 до 999. Число должно
; сохранятся в ПЗУ и при перезагрузке счетчик не должен сбрасываться.
; R18,R19,R20 - счетные регистры
; R21,R22,R23 - регистры вывода, перед выводом преобразуются в 7 сег. код
; R24 - регистр разряда, для динамической индикации
; R25 - регистр адреса ячеек EEPROM

.device ATTiny2313
.nolist
.include "C:\Program Files (x86)\Atmel\AVR Tools\AvrAssembler2\Appnotes\tn2313def.inc"
.list

; MACRO******************************************************



; RAM******************************************************
   .DSEG                ; Сегмент ОЗУ


; FLASH****************************************************
   .CSEG                     ; Кодовый сегмент
   .ORG $000                 ; (RESET)
   rjmp Init
   .ORG $001                 ; (INT0) External Interrupt Request 0
   reti
   .ORG $002                 ; (INT1) External Interrupt Request 1
   rjmp countrst
   .ORG $003                 ; (TIMER1 CAPT) Timer/Counter1 Capture Event
   reti
   .ORG $004                 ; (TIMER1 COMPA) Timer/Counter1 Compare Match A
   reti
   .ORG $005                 ; (TIMER1 OVF) Timer/Counter1 Overflow
   reti
   .ORG $006                 ; (TIMER0 OVF) Timer/Counter0 Overflow
   reti
   .ORG $007                 ; (USART0, RX) USART0, Rx Complete
   reti
   .ORG $008                 ; (USART0, UDRE) USART0 Data Register Empty
   reti
   .ORG $009                 ; (USART0, TX) USART0, Tx Complete
   reti
   .ORG $00A                 ; (ANALOG COMP) Analog Comparator
   reti
   .ORG $00B                 ; (PCINT) Pin Change Interrupt
   reti
   .ORG $00C                 ; (TIMER1 COMPB) Timer/Counter1 Compare Match B
   reti
   .ORG $00D                 ; (TIMER0 COMPA) Timer/Counter0 Compare Match A
   reti
   .ORG $00E                 ; (TIMER0 COMPB) Timer/Counter0 Compare Match B
   reti
   .ORG $00F                 ; (USI START USI) Start Condition
   reti
   .ORG $010                 ; (USI OVERFLOW) USI Overflow
   reti
   .ORG $011                 ; (EE READY) EEPROM Ready
   rjmp eewrite
   .ORG $012                 ; (WDT OVERFLOW) Watchdog Timer Overflow
   reti

Init:
; PORTB на сегменты
; PD0,PD1,PD2 для разрядов(динамическая индикация)
; PD4 счетчик
; PD3 сброс
   ldi R16,0b11111111        ; Определяем входы и выходы порта A (1 выход, 0 вход)
   out DDRA,R16              ; Заносим значение в регистр
   ldi R16,0b11111111        ; Определяем входы и выходы порта B (1 выход, 0 вход)
   out DDRB,R16              ; Заносим значение в регистр
   ldi R16,0b11100111        ; Определяем входы и выходы порта D (1 выход, 0 вход)
   out DDRD,R16              ; Заносим значение в регистр

   ldi R16,0b11111111        ; Включаем подтяжку для входов порта A
   out PortA,R16             ; и задаем начальные состояния выходов
   ldi R16,0b11111111        ; Включаем подтяжку для входов порта B
   out PortB,R16             ; и задаем начальные состояния выходов
   ldi R16,0b00011000        ; Включаем подтяжку для входов порта D
   out PortD,R16
                
   ldi R16,0x00DF            ; Инициализация стека
   out SPL,R16

   rjmp start
table:
; Таблица преобразований чисел в 7 сегментный код.
; PB0-A PB1-B PB2-C PB3-D PB4-E PB5-F PB6-G
   cpi R16,0
   brne PC+0x03              ; Охуенни изврат с адрессацией. Жить становится намного проще.
   ldi R16,0b11000000
   ret
   cpi R16,1
   brne PC+0x03
   ldi R16,0b11111001
   ret
   cpi R16,2
   brne PC+0x03
   ldi R16,0b10100100
   ret
   cpi R16,3
   brne PC+0x03
   ldi R16,0b10110000
   ret
   cpi R16,4
   brne PC+0x03
   ldi R16,0b10011001
   ret
   cpi R16,5
   brne PC+0x03
   ldi R16,0b10010010
   ret
   cpi R16,6
   brne PC+0x03
   ldi R16,0b10000010
   ret
   cpi R16,7
   brne PC+0x03
   ldi R16,0b10000111
   ret
   cpi R16,8
   brne PC+0x03
   ldi R16,0b10000000
   ret
   ldi R16,0b10010000
   ret
eeread:                       ; Подпрограмма считывания числа из EEPROM
eerdy:
   sbic EECR,EEPE
   rjmp eerdy
   out EEAR, R25
   sbi EECR,EERE
   in R16,EEDR
   cpi R16,10
   brcs PC+0x02
   clr R16
   st X+,R16
   inc R25
   ret
displout:                 ; Подпрограмма вывода 3 рязрядов в динамической индикации
   mov R16,R18
   rcall table
   mov R21,R16
   mov R16,R19
   rcall table
   mov R22,R16
   mov R16,R20
   rcall table
   mov R23,R16
   out PORTB,R21
   sbi PORTD,0
   rcall delay
   cbi PORTD,0
   out PORTB,R22
   sbi PORTD,1
   rcall delay
   cbi PORTD,1
   out PORTB,R23
   sbi PORTD,2
   rcall delay
   cbi PORTD,2
   ret
delay:
   nop
   nop
   nop
   nop
   nop
   nop
   ret
button:                    ; Подпрограмма опроса кнопки инкрементирования
   in R29,PIND
   sbrc R29,4
   mov R28,R29
   eor R28,R29
   sbrc R28,4
   inc R18
   mov R28,R29
   ret
rankovf:
   cli
   cpi R18,10
   brne PC+0x02
   clr R18
   inc R19
   cpi R19,10
   brne PC+0x02
   clr R18
   inc R20
   cpi R20,10
   brne PC+0x03
   clr R18
   clr R19
   clr R20
   reti
eeprominit:
   clr R27
   ldi R26,0x12
   clr R25
   ret
eewrite:
   out EEAR, R25
   ld R16,X+
   out EEDR,R16
   sbi EECR,EEMPE
   sbi EECR,EEPE
   inc R25
   cpi R25,3
   brne PC+0x02
   rcall eeprominit
   reti
countrst:
   clr R18
   clr R19
   clr R20
   reti
start:
   rcall eeprominit
   rcall eeread
   rcall eeread
   rcall eeread
   ser R26
   rcall eeprominit
main:
   sei
   rcall displout
   rcall button
   sbi EECR,EERIE
   rcall rankovf
   cbi EECR,EERIE
   rjmp main


Смотри метку start это идет однократная инициализация программы и проходит 1 раз после включения контроллера, в данном случае нам после включения нужно 1 раз считать число. Далее идет цикл main и его подпрограммы, они зацикленны уже: отобразить на индикаторе, опросить кнопку, разрешить прерывание на запись значения в еепром, подвинуть разряды, и заново. В проге может и есть ошибки, бо протеус не хочит динамику отображать, а "заказчик" отморозился. Но я хотел показать суть моего написания.

_________________
ZADROT MODE COMPLETE
MISSION PASSED


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: 4 ступени и 3х миллиметровый снаряд. Посмотрим что выйде
СообщениеДобавлено: Вт авг 09, 2011 8:46 pm 
Аватар пользователя

Зарегистрирован: Вт сен 23, 2008 10:59 am
Сообщений: 1588
Откуда: Moskva
Axon писал(а):
Цитата:
Или скакать по всей портянке выискивая необходимый кусок программы или подпрограмму тоже не але.

В начале пишу подпрограммы, потом основную и оттуда вызываю нужные подпрограммы.


Axon! Ну что я могу сказать... очень аккуратно написанная программа. Приятно читать.
НО если пошла такая пьянка давай рассмотрим расскладку моей основной программы.

Код:
;**********************************************************************************
;программа дял устройства работы с драйвером гаусса
;на кристале ATmega 8
;
;**********************************************************************************   
;.devise ATmega8                 ;есть в апоинтах
.include "m8def.inc"             ;подгружаем апоинты
.include "name_registers.inc"      ;присваивание имен регистрам

;=========================================================================================
;Начало векторов прерывания
.org 0                        ;яч 0
   rjmp rezet               ;Прирываение по сбросу
.org INT0addr                  ;яч 1
   rjmp interr_int_0         ;Прерыванеи по внешниму INT0
.org INT1addr                  ;яч 2
   reti ;rjmp interr_int_1         ;Прерывание по внешниму INT1
.org OC2addr                  ;яч 3
   reti ;rjmp interr_time2_comp   ;Прерывание по совпадению таймера 2
.org OVF2addr                  ;яч 4
   reti ;rjmp interr_time2_ovf      ;Прерывание по переполнению таймера 2
.org ICP1addr                  ;яч 5
   reti ;rjmp interr_timer1_cepture;Прерывание по захвату таймера 1
.org OC1Aaddr                  ;яч 6
   reti ;rjmp interr_timer1A_comp   ;Прерывание по совпадению таймера 1А
.org OC1Baddr                  ;яч 7
   reti ;rjmp interr_timer1B_comp   ;Прерывание по совпадению таймера 1В
.org OVF1addr                  ;яч 8
   reti ;rjmp interr_timer1_ovf   ;Прерывание по переполнению таймера 1
.org OVF0addr                  ;яч 9
   rjmp interr_timer0_ovf      ;Прерывание по переполнению таймера 0
.org SPIaddr                  ;яч 10
   reti ;rjmp interr_spi_end      ;Прерывание передача по SPI завершена
.org URXCaddr                  ;яч 11
   reti ;rjmp interr_uart_res_end   ;Прерывание UART прием завершен
.org UDREaddr                  ;яч 12
   reti ;rjmp interr_uart_reg_emp   ;Прерывание UART регистр данных пуст
.org UTXCaddr                  ;яч 13
   reti ;rjmp interr_uart_tra_end   ;Прерывание UART передача завершена
.org ADCCaddr                  ;яч 14
   reti ;rjmp interr_asp_end      ;Прерывание преобразование АЦП завершено
.org ERDYaddr                  ;яч 15
   reti ;rjmp interr_eeprom_redy    ;Прерывание EEPROM готово
.org ACIaddr                  ;яч 16
   reti ;rjmp interr_compar      ;Прерывание аналоговый карпоратор
.org TWIaddr                  ;яч 17
   reti ;rjmp interr_twi         ;Прерывание от модуля Two-Wire Interface (TWI)
.org SPMRaddr                  ;яч 18
   reti ;rjmp interr_spm         ;Прерывание по готовности Store Program Memory (SPM)

;==================================================================================================
.org $013                     ;(яч. 19)
;подпрограммы и Макросы
;=========================================================================================
.include "Moduli_otobrajenia.inc"   ;подгружаем модули отображения
.include "jamp_led_line.inc"      ;подпрограмма переключения показателя напряжений
.include "push_on.inc"            ;обработчик выстрела
.include "raznoe.inc"            ;дополнительные подпрограммы
;.include ".inc"         ;подпрограмма
;.include ".inc"         ;подпрограмма
;.include ".inc"         ;подпрограмма
;.include ".inc"         ;подпрограмма
;==================================================================================================
;Вектор прерывания по rezet
rezet:
   ;Начальниые установки контроллера
   .include "ustanobki_prosessora.inc"   
   ;другие настройки
   rcall clier_all_register         ;очисика всех регистров перед входом
   sei                           ;разрешаем прерывания
   ;запрос на изменения акков
   set
   bld reg_flag_1, flag_measuring_bat   ;выставляем флаг опроса заряда акков
   rcall run_adc_akk               ;делаем запрос на АЦП напряжения Аккумулятора
      ;цикл первого измерения до выставления флага конца измерения
   measuring_bat_on:
      sbis ADCSRA, 6               ;пропустить если флаг работы АЦП установлен
      rjmp go_programm            ;переходим елси преобразование закончено
      pausa 0xff                  ;делаем небольшую паузу
      rjmp measuring_bat_on         ;переход .. преобразования продолжается
   go_programm:
   ;включаем собаку
      ldi temp_1, 0b00011000      
      out WDTCR,temp_1
      ldi temp_1, 0b00001101
      out WDTCR,temp_1
   ;выставляем ргестр регулятора заряда капов
      ldi temp_1, reguliater_max
      mov reguliater, temp_1

;Тело основной программы
;===================================================================================================
;основная программа
cikle:   
   ;блок обработки данных с АЦП
   sbic ADCSRA, 6               ;пропустить если флаг работы АЦП очищен
   rjmp measuring_adc_run         ;уходим если преобразования АЦП не закончено
   rcall measuring_adc_off         ;выполняем если преобразование завершено
   measuring_adc_run:            
   ;проверка работы устройства
   rcall check_equipment
   ;переключение флага индикации заряда
   rcall jamp_led_line                  
   ;кормим собаку
   wdr                              
rjmp cikle                           ;конец основной программы
;*********************************************
;обработчики прерываний
;===================================================================================================

;Прерыванеи по внешниму INT0
interr_int_0:
   ;сохраняем значения регистра temp_Х и SREG
      push temp_1   
      push temp_2
      push temp_3   
      push temp_4
      push temp_5
      push temp_6
      push temp_7
      in temp_7,SREG
      push temp_7
   ;отключение работы преобразователя
      rcall stop_converter   
   ;пауза после отключения преобразователя   
      pausa 0xff   
   ;подпрограмма обработки выстрела            
      rcall push_on            
   ;восстанавливаем значения регистра temp_Х и SREG
      pop temp_7
      out SREG,temp_7
      pop temp_7
      pop temp_6
      pop temp_5
      pop temp_4
      pop temp_3
      pop temp_2
      pop temp_1
reti                        ;конец прерыванеи по внешниму INT0

;Прерывание по внешниму INT1
   ;interr_int_1:               
   ;reti

;Прерывание по совпадению таймера 2
   ;interr_time2_comp:
   ;reti

;Прерывание по переполнению таймера 2
   ;interr_time2_ovf:
   ;reti

;Прерывание по захвату таймера 1
   ;interr_timer1_cepture:   
   ;reti

;Прерывание по совпадению таймера 1А
   ;interr_timer1A_comp:         
   ;reti

;Прерывание по совпадению таймера 1В
   ;interr_timer1B_comp:
   ;reti

;Прерывание по переполнению таймера 1
   ;interr_timer1_ovf:
   ;reti

;Прерывание по переполнению таймера 0
interr_timer0_ovf:
   ;сохраняем значения регистра temp_Х и SREG
      push temp_1   
      push temp_2
      push temp_3   
      push temp_4
      push temp_5
      push temp_6
      push temp_7
      in temp_7,SREG
      push temp_7
   ;подпрограмма обработчик флагов алармов
      rcall r_f_alarm_to_r_alarm   
   ;подпрограмма вывода флагов индикации
      rcall out_let   
   ;подпрограмма обработчик разрешения на маргания         
      rcall flash_timer
   ;счетчик паузы дял кнопки         
      rcall pusch_pausa               
   ;восстанавливаем значения регистра temp_Х и SREG
      pop temp_7
      out SREG,temp_7
      pop temp_7
      pop temp_6
      pop temp_5
      pop temp_4
      pop temp_3
      pop temp_2
      pop temp_1
reti                         ;конец прерывания по переполнению таймера 0

;Прерывание передача по SPI завершена
   ;interr_spi_end:            
   ;reti

;Прерывание UART прием завершен
   ;interr_uart_res_end:
   ;reti

;Прерывание UART регистр данных пуст
   ;interr_uart_reg_emp:
   ;reti

;Прерывание UART передача завершена
   ;interr_uart_tra_end:
   ;reti

;Прерывание преобразование АЦП завершено
   ;interr_asp_end:            
   ;reti

;Прерывание EEPROM готово
   ;interr_eeprom_redy:
   ;reti

;Прерывание аналоговый карпоратор
   ;interr_compar:      
   ;reti

;Прерывание от модуля Two-Wire Interface (TWI)
   ;interr_twi:   
   ;reti

;Прерывание по готовности Store Program Memory (SPM)
   ;interr_spm:      
   ;reti

;===========================================================================================
;Область дял записи масок и констант
;n_mask:                     ;маска перехода
;.db 0b00000000, 0b00000000               ;данные начинаются с "0" и записываются с размером в байт

;================================================================================================


Конечно написано не так аккуратно как у тебя НО.
Если ты внимательно рассмотриш программу то заметиш, что он в точности повторяет твою раскладку.
Сначала присвоение имен, потом вектора прерываний, зетем библиотека подпрограмм, дальше первоначальные настройки (REZET) потом основное тело програмы cikle и наконец обработнички векторов прерываний. Вся библиотека подпрограмм в инклудах т.к. их суммарный листинг превышает этот раза в два.. три, а то и больше. У меня одних присвоенных имен на пару страниц. Если все это в один листинг записать то, упаришся искать даже по именам меток, которые я как и ты вывожу в начало строки.
Как я уже писал мне проще так работать. Написал подпрограмму подцепил ее инклудом и забыл о ней. Налаживать тоже легко. Вызвал прошолся по ней исправил что надо и закрыл. Сидит она в отдельном файле и не мешает.
НО сколько программеров столько и мнений о том, как надо оформлять программу. В итоге окончательный код будет примерно одинаков.

Кстати мне очень понравился "Охуенни изврат с адрессацией". В некоторых местах очень удобно пременять.
И если применять мой метод к твоей программе она бы выглядела примерно вот так.

Код:
;*****************************
; Автор: Axon                *
; Дата: 26.07.2011           *
; Версия: 1.0                *
; Имя файла: Counter         *
; Для AVR: Mega16            *
; Тактовая частота: 8MHz     *
;*****************************

; Выполняемые функции: Счетчик нажатий с диапазоном счета от 0 до 999. Число должно
; сохранятся в ПЗУ и при перезагрузке счетчик не должен сбрасываться.
; R18,R19,R20 - счетные регистры
; R21,R22,R23 - регистры вывода, перед выводом преобразуются в 7 сег. код
; R24 - регистр разряда, для динамической индикации
; R25 - регистр адреса ячеек EEPROM

.device ATTiny2313
.nolist
.include "C:\Program Files (x86)\Atmel\AVR Tools\AvrAssembler2\Appnotes\tn2313def.inc"
.list

; MACRO******************************************************



; RAM******************************************************
   .DSEG                ; Сегмент ОЗУ


; FLASH****************************************************
   .CSEG                     ; Кодовый сегмент
   .ORG $000                 ; (RESET)
   rjmp Init
   .ORG $001                 ; (INT0) External Interrupt Request 0
   reti
   .ORG $002                 ; (INT1) External Interrupt Request 1
   rjmp countrst
   .ORG $003                 ; (TIMER1 CAPT) Timer/Counter1 Capture Event
   reti
   .ORG $004                 ; (TIMER1 COMPA) Timer/Counter1 Compare Match A
   reti
   .ORG $005                 ; (TIMER1 OVF) Timer/Counter1 Overflow
   reti
   .ORG $006                 ; (TIMER0 OVF) Timer/Counter0 Overflow
   reti
   .ORG $007                 ; (USART0, RX) USART0, Rx Complete
   reti
   .ORG $008                 ; (USART0, UDRE) USART0 Data Register Empty
   reti
   .ORG $009                 ; (USART0, TX) USART0, Tx Complete
   reti
   .ORG $00A                 ; (ANALOG COMP) Analog Comparator
   reti
   .ORG $00B                 ; (PCINT) Pin Change Interrupt
   reti
   .ORG $00C                 ; (TIMER1 COMPB) Timer/Counter1 Compare Match B
   reti
   .ORG $00D                 ; (TIMER0 COMPA) Timer/Counter0 Compare Match A
   reti
   .ORG $00E                 ; (TIMER0 COMPB) Timer/Counter0 Compare Match B
   reti
   .ORG $00F                 ; (USI START USI) Start Condition
   reti
   .ORG $010                 ; (USI OVERFLOW) USI Overflow
   reti
   .ORG $011                 ; (EE READY) EEPROM Ready
   rjmp eewrite
   .ORG $012                 ; (WDT OVERFLOW) Watchdog Timer Overflow
   reti

;Библиотека подпрограмм
;******************************************
.include "table.inc"         ;подпрограмма
.include "eeread.inc"         ;подпрограмма
.include "displout.inc"         ;подпрограмма
.include "delay.inc"         ;подпрограмма
.include "button.inc"         ;подпрограмма
.include "rankovf.inc"         ;подпрограмма
.include "eeprominit.inc"         ;подпрограмма
.include "eewrite.inc"         ;подпрограмма
.include "countrst.inc"         ;подпрограмма

;*******************************************
Init:
.include "Init_start.inc"         ;подпрограмма

main:
   sei
   rcall displout
   rcall button
   sbi EECR,EERIE
   rcall rankovf
   cbi EECR,EERIE
   rjmp main



Лучше или хуже.... Незнаю. НО мне было бы так удобней.

_________________
Извините за грамотность, сызмальства не обучен. ;-)
P.S. Это я не извиняюсь, это я предупреждаю.

http://www.facebook.com/piton.kaa.10


Последний раз редактировалось Piton Вт авг 09, 2011 9:22 pm, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: 4 ступени и 3х миллиметровый снаряд. Посмотрим что выйде
СообщениеДобавлено: Вт авг 09, 2011 9:16 pm 
In Trance
Аватар пользователя

Зарегистрирован: Сб дек 22, 2007 2:45 pm
Сообщений: 4880
Откуда: Украина, Днепропетровск
Цитата:
НО сколько программеров столько и мнений о том, как надо оформлять программу. В итоге окончательный код будет примерно одинаков.

Не спорю и не заставляю делать как я, как говорится на вкус и цвет все фломастеры разные
Цитата:
Кстати мне очень понравился "Охуенни изврат с адрессацией". В некоторых местах очень удобно пременять.


Таки да, отпадает необходимость ставить овердохуя меток, а так просто счетчик перепрыгивает ненужные команды.

ЗЫ И еще согласен с тем, что на асме приятно программировать.

_________________
ZADROT MODE COMPLETE
MISSION PASSED


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: 4 ступени и 3х миллиметровый снаряд. Посмотрим что выйде
СообщениеДобавлено: Вт авг 30, 2011 10:33 pm 
Аватар пользователя

Зарегистрирован: Вт сен 23, 2008 10:59 am
Сообщений: 1588
Откуда: Moskva
Хммм. Ввиду изменений концепции компановки усройсва, пришлось переделать как блок управления так и преобразователь, увязав его с упрвалением и снабдив стабилизатором на 5 вольт и блоком аварийного отключения.
Так же немного подлизал программу, и настроил ту часть которая отвечает за разряд акков.
Вот как оно по новому выглядит.

Изображение

Надеюсь скоро доделать и настроить перобразователь. :-)

_________________
Извините за грамотность, сызмальства не обучен. ;-)
P.S. Это я не извиняюсь, это я предупреждаю.

http://www.facebook.com/piton.kaa.10


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: 4 ступени и 3х миллиметровый снаряд. Посмотрим что выйде
СообщениеДобавлено: Ср авг 31, 2011 12:27 am 
In Trance
Аватар пользователя

Зарегистрирован: Сб дек 22, 2007 2:45 pm
Сообщений: 4880
Откуда: Украина, Днепропетровск
Молодец. Особенно за пряморукую сборку! Аж приятно смотреть.

_________________
ZADROT MODE COMPLETE
MISSION PASSED


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: 4 ступени и 3х миллиметровый снаряд. Посмотрим что выйде
СообщениеДобавлено: Ср авг 31, 2011 12:53 am 

Зарегистрирован: Чт апр 28, 2011 7:32 pm
Сообщений: 4740
Откуда: МО. г. Клин
А как дела с силовой частью?
Я ща от батхёрта скончаюсь!

_________________
MEW you fail!
ALERT: CONDITION YELLOW


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: 4 ступени и 3х миллиметровый снаряд. Посмотрим что выйде
СообщениеДобавлено: Ср авг 31, 2011 6:29 pm 
Аватар пользователя

Зарегистрирован: Вт сен 23, 2008 10:59 am
Сообщений: 1588
Откуда: Moskva
ПУЛЕМЕТ писал(а):
А как дела с силовой частью?


С ней в первом приближении тоже все понятно. Тестовые образцы были сделаны и испытаны. (смотри много выше)
Все теристорно-дидно-каповое приблудство куплено в дастаточном количетве, проволка разного калибра тоже, ствол есть, шпули наточены, держатели оптопар наточены, прсверлены и т.д.
Осталось найти немного времени, поразмыслить над компановкой и собрать воедино эти разрозненые элементы.
Что же касается схем силовой части... пока остановился на классике.
НО пристально слежу за новой струей в этом направлении и с нетерпением жду результатов.
:-)

_________________
Извините за грамотность, сызмальства не обучен. ;-)
P.S. Это я не извиняюсь, это я предупреждаю.

http://www.facebook.com/piton.kaa.10


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: 4 ступени и 3х миллиметровый снаряд. Посмотрим что выйде
СообщениеДобавлено: Ср авг 31, 2011 11:24 pm 

Зарегистрирован: Чт апр 28, 2011 7:32 pm
Сообщений: 4740
Откуда: МО. г. Клин
Тогда только один совет.
Доделывай побыстрей.
Ждём результатов.

_________________
MEW you fail!
ALERT: CONDITION YELLOW


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: 4 ступени и 3х миллиметровый снаряд. Посмотрим что выйде
СообщениеДобавлено: Чт сен 01, 2011 10:08 pm 
Аватар пользователя

Зарегистрирован: Вт сен 23, 2008 10:59 am
Сообщений: 1588
Откуда: Moskva
ПУЛЕМЕТ писал(а):
Ждём результатов.


Эх было бы время. :-(

_________________
Извините за грамотность, сызмальства не обучен. ;-)
P.S. Это я не извиняюсь, это я предупреждаю.

http://www.facebook.com/piton.kaa.10


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: 4 ступени и 3х миллиметровый снаряд. Посмотрим что выйде
СообщениеДобавлено: Пт сен 02, 2011 9:19 pm 

Зарегистрирован: Чт апр 28, 2011 7:32 pm
Сообщений: 4740
Откуда: МО. г. Клин
Ну ты главное не бросай! Такое качество выполнения заслуживает того что-бы проект был завершён.

_________________
MEW you fail!
ALERT: CONDITION YELLOW


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: 4 ступени и 3х миллиметровый снаряд. Посмотрим что выйде
СообщениеДобавлено: Чт дек 22, 2011 9:56 pm 
Аватар пользователя

Зарегистрирован: Вт сен 23, 2008 10:59 am
Сообщений: 1588
Откуда: Moskva
Господа!!
Я здесь перечитывая в некоторых местах форум набредал на идею сделать гаусс без датчиков. Тоесть промежутки времени между включениями катушек отмеряются не по фактическому проходу шпули по стволу, а контроллером исходя из первоначальных настроек.
Да, слышу возражения о том, что каждая шпуля индивидуальна или накачка на капах раз на раз не приходится, а значит каждый выстрел неповторим.
НО при контроле напряжения накачки МК легко можно получить контроль накачки с точностью до вольта, а если шпули делать с любовью то и их идентичность будет вполне приемлемой.
Я также понимаю, что без контроллера довольно сложно организовать машинку которая бы качественно осуществляла бы задержки и подавала необходимые сигналы. Поэтому большинство делает схему контроля на датчиках. НО с появлением МК в гауссе, на мой взгляд, реализация такого устройства не представляет проблем. И профит с этого видется вполне приличный. Упрощается схема контроля, более устойчивая стрельба (такая хрень как не сработавшая оптопара уже не мучает), сильно упрощается конструкция ствола и настройка катушек на максимальную производительность. К тому же в случае дальнейшего развития можно, поставив оптопару на конец ствола, организовать процедуру самонастройки (особенно в одноступенчатых устройствах). Что самое приятное в этом, что скорость шпули не надо при этом вычислять. Просто чем меньше показания счетчика контроллера, тем выше скорость и более качественная работа.
Короче вижу только одни плюсы. НО скорей всего я что-то упускаю т.к. в общем то идея очевидна.
Теперь, как всегда, вопрос знатокам. КТО нить делал такое управление и что из этого получилось? Есть ли смысл (основываясь только на реально проведенных экспериментах) делать или пробовать сие??
Я понимаю, что тема уже упоминалась и обсосана, но предлагаю возвратиться к ней и подискутировать. Я, в общем, серьезно подумываю над попыткой именно такой реализации.

Что же касается проекта как такового, то могу сказать следующее.
Концептуально проработан принцип, и детали казенной части. Не могу найти пружину для магазина, чтобы попытаться реализовать казенник в «металле». Хотя делать буду все из текстолита, к которому привык. Если будет время, надеюсь закончить казенник к концу января.

_________________
Извините за грамотность, сызмальства не обучен. ;-)
P.S. Это я не извиняюсь, это я предупреждаю.

http://www.facebook.com/piton.kaa.10


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: 4 ступени и 3х миллиметровый снаряд. Посмотрим что выйде
СообщениеДобавлено: Чт дек 22, 2011 10:13 pm 

Зарегистрирован: Чт апр 28, 2011 7:32 pm
Сообщений: 4740
Откуда: МО. г. Клин
на датчиках проще. всё равно нужно замерять скорость после каждой ступени, а без датчиков это не сделать.
любая помеха прервет нормальное ускорение в такой системе.
всё равно нужны датчики.
без датчиков придется очень тщательно настраивать и добиваться однообразия снарядов, однообразия подачи и ускорения, всегда поддерживать смазку...
опять-же МК способен на большее не надо им гвозди забивать!

_________________
MEW you fail!
ALERT: CONDITION YELLOW


Последний раз редактировалось ПУЛЕМЕТ Пт дек 23, 2011 1:35 pm, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: 4 ступени и 3х миллиметровый снаряд. Посмотрим что выйде
СообщениеДобавлено: Пт дек 23, 2011 12:19 am 
In Trance
Аватар пользователя

Зарегистрирован: Сб дек 22, 2007 2:45 pm
Сообщений: 4880
Откуда: Украина, Днепропетровск
Piton писал(а):
Господа!!
Я здесь перечитывая в некоторых местах форум набредал на идею сделать гаусс без датчиков. Тоесть промежутки времени между включениями катушек отмеряются не по фактическому проходу шпули по стволу, а контроллером исходя из первоначальных настроек.
Да, слышу возражения о том, что каждая шпуля индивидуальна или накачка на капах раз на раз не приходится, а значит каждый выстрел неповторим.
НО при контроле напряжения накачки МК легко можно получить контроль накачки с точностью до вольта, а если шпули делать с любовью то и их идентичность будет вполне приемлемой.
Я также понимаю, что без контроллера довольно сложно организовать машинку которая бы качественно осуществляла бы задержки и подавала необходимые сигналы. Поэтому большинство делает схему контроля на датчиках. НО с появлением МК в гауссе, на мой взгляд, реализация такого устройства не представляет проблем. И профит с этого видется вполне приличный. Упрощается схема контроля, более устойчивая стрельба (такая хрень как не сработавшая оптопара уже не мучает), сильно упрощается конструкция ствола и настройка катушек на максимальную производительность. К тому же в случае дальнейшего развития можно, поставив оптопару на конец ствола, организовать процедуру самонастройки (особенно в одноступенчатых устройствах). Что самое приятное в этом, что скорость шпули не надо при этом вычислять. Просто чем меньше показания счетчика контроллера, тем выше скорость и более качественная работа.
Короче вижу только одни плюсы. НО скорей всего я что-то упускаю т.к. в общем то идея очевидна.
Теперь, как всегда, вопрос знатокам. КТО нить делал такое управление и что из этого получилось? Есть ли смысл (основываясь только на реально проведенных экспериментах) делать или пробовать сие??
Я понимаю, что тема уже упоминалась и обсосана, но предлагаю возвратиться к ней и подискутировать. Я, в общем, серьезно подумываю над попыткой именно такой реализации.

Что же касается проекта как такового, то могу сказать следующее.
Концептуально проработан принцип, и детали казенной части. Не могу найти пружину для магазина, чтобы попытаться реализовать казенник в «металле». Хотя делать буду все из текстолита, к которому привык. Если будет время, надеюсь закончить казенник к концу января.

Я об этом уже давно очень думаю, обсуждали это с Димой(]HIGH[) вконтакте. Но датчики всеравно понадобятся при настройке задержек. Где-то были наброски алгоритмов, могу поискать и скинуть через ЛС, если сильно нужно.

_________________
ZADROT MODE COMPLETE
MISSION PASSED


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: 4 ступени и 3х миллиметровый снаряд. Посмотрим что выйде
СообщениеДобавлено: Пт дек 23, 2011 10:26 am 
Аватар пользователя

Зарегистрирован: Вт фев 10, 2009 10:27 am
Сообщений: 2891
Откуда: кому надо и так найдут где я
было бы очень интересно если ктонить написал бы интер-актвиную прогу для ОС -гаусс
комплекс датчиков:
хронометры
датчики тока
напряжения
емкости,
температуры катушек
также запуск и тд.
с построение графиков работы.
или я овердохуя фантазирую?
и как все это интегрировать не представляю

_________________
Несмотря на кажущуюся простоту конструкции, на существующей технологической базе мировой науке создать ничего толкового не удалось. (с)

перегрузка


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: 4 ступени и 3х миллиметровый снаряд. Посмотрим что выйде
СообщениеДобавлено: Пт дек 23, 2011 12:36 pm 
In Trance
Аватар пользователя

Зарегистрирован: Сб дек 22, 2007 2:45 pm
Сообщений: 4880
Откуда: Украина, Днепропетровск
Vit писал(а):
как все это интегрировать не представляю

Датчики -> МК -> Преобразователь интерфейсов (UART-USB) -> Комп с прогой.

_________________
ZADROT MODE COMPLETE
MISSION PASSED


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: 4 ступени и 3х миллиметровый снаряд. Посмотрим что выйде
СообщениеДобавлено: Вс дек 25, 2011 2:36 pm 
Аватар пользователя

Зарегистрирован: Вт сен 23, 2008 10:59 am
Сообщений: 1588
Откуда: Moskva
Axon писал(а):
Но датчики всеравно понадобятся при настройке задержек.

Я думаю вообще сделать без датчиков. Просто при первоночальной настройке придется пользоваться измерителем скорости. Задержки подбираются на каждую ступень по очередности. Правда без датчиков нельзя будет реализовать самонастройку. Но это по большому счету и не нужно если не менять геометрию и вес шпули или напряжение накачки.
Axon писал(а):
Где-то были наброски алгоритмов, могу поискать и скинуть через ЛС, если сильно нужно.

Давай посмотрю чо как.
Vit писал(а):
или я овердохуя фантазирую?

Vit а зачем все это. Все тобой перечисленное необхдимо только в исследовательских целях. Я вообще придерживаюсь мнения, что чем проще тем лучше.

_________________
Извините за грамотность, сызмальства не обучен. ;-)
P.S. Это я не извиняюсь, это я предупреждаю.

http://www.facebook.com/piton.kaa.10


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: 4 ступени и 3х миллиметровый снаряд. Посмотрим что выйде
СообщениеДобавлено: Вс дек 25, 2011 4:58 pm 

Зарегистрирован: Чт апр 28, 2011 7:32 pm
Сообщений: 4740
Откуда: МО. г. Клин
Цитата:
Я думаю вообще сделать без датчиков. Просто при первоночальной настройке придется пользоваться измерителем скорости. Задержки подбираются на каждую ступень по очередности. Правда без датчиков нельзя будет реализовать самонастройку. Но это по большому счету и не нужно если не менять геометрию и вес шпули или напряжение накачки.

ну если есть желание топить урановые ломы в ртути то пожалуйста.
но особого КПД такой метод не сулит.
в любом случае хоть на немного но но параметры катушек будут уплывать. от той-же температуры например. или будет меняться трение снаряда со стволом. а так в принципе будет работать.
DANTIST делал так. только ХЗ куда он делся...

_________________
MEW you fail!
ALERT: CONDITION YELLOW


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 224 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11, 12  След.

Часовой пояс: UTC + 3 часа


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

Найти:

 

Яндекс цитирования
Русская поддержка phpBB