|
|
  |
tiny2313 & mega8, посоветуйте плз |
|
|
|
Nov 17 2006, 13:37
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(Terapefft @ Nov 17 2006, 15:11)  щас попробовал, все равно плата индикации не светится  Код ;--------------- Timer0 --------------------------------------
ldi rin,0b00000001; Подключаем только Timer0 out timsk,rin; overflow timer0
;--------------- Timer2 --------------------------------------
ldi rin,0b01000000; Подключаем только Timer2 out timsk,rin; overflow timer2 Вот он Ваш еггор  Если Вам необходимы прерывания всех трех таймеров, то нужно написать один раз: ldi rin,0b01000101 out timsk,rin
|
|
|
|
|
Nov 20 2006, 14:50
|

Местный
  
Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672

|
Цитата(Terapefft @ Nov 20 2006, 13:01)  Я вот тут посидел подумал и у меня возник вопрос: у меня же процесс включения насоса будет находится в одном цикле с процесами нагрева продольных и поперечных губок автомата, и следовательно если я после выставления флага на включение насоса, перейду на ПП поддержания насоса во включеном состоянии, то у меня сдвинется весь рабочий цикл на величину поддержания насоса во включеном состоянии ??? а это не есть гуд.... подскажите пожалуста возможные пути решения этой проблемы. И еще вопрос, вот у меня есть второй счетчик
timer2: push rin ldi rin,$3c ; $3c=60 out tcnt2,rin ; ldi rin,TNASOS ; prov:
dec rin cpi rin,0 brne prov pop rin
reti Как сделать так чтобы в рабочем цикле после включения насоса выдерживалось время TNASOS с помощью этого счетчика??? Выставить в прерывании флаг, типа SBR FLAG,1<<timer_2 а в рабочий цикл, типа SBRS FLAG,timer_2 RJMP <метка> ldi rin,TNASOS ; prov: dec rin cpi rin,0 brne prov <метка> и будет тебе счастье  А возможные пути решения этой проблемы... Возми бумажку и нарисуй какой алгоритм тебя устраивает и по нему пиши програму.
Сообщение отредактировал Wild007 - Nov 20 2006, 14:58
--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
|
|
|
|
|
Nov 20 2006, 15:29
|

Частый гость
 
Группа: Свой
Сообщений: 167
Регистрация: 14-06-06
Из: Рязань
Пользователь №: 18 052

|
что то я не совсем понял, судя по этому: SBR FLAG,1<<timer_2 это мне надо какому нить свободному регистру назначить имя flag, а timer_2 будет в нем просто битом ??? и вставить эту строку в процедуру обработки прерываний от таймера2 как нить так? : timer2: push rin
ldi rin,$3c ; $3c=60 out tcnt2,rin ; sbr Flag,1<<timer_2 pop rin ; reti
А рабочий цикл тогда получится будет таким ?: ..................... sbr svet,0b00010000 ; светить Т1 ldi rin,0 ; включить поперечный нагрев rcall nagr ; rcall delay ; выдерживаем вермя для заварки Т1 ldi radr,doza_1 ; дозатор на всасывание rcall decod ; cbr reg_flgs,0b00000001 ; флаг на начало всасывания SBRS Flag,timer_2 RJMP M10 ldi rin,TNASOS ; prov:
dec rin cpi rin,0 brne prov
M10:
cbr svet,0b00010000 ;погасить Т1 sbr svet,0b00100000 ; светить Т2
.......................................
|
|
|
|
|
Nov 20 2006, 16:19
|

Местный
  
Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672

|
Цитата(Terapefft @ Nov 20 2006, 15:13)  понятно  а подскажите пожалуста как и ОЗУ в ППЗУ считать (мне надо значение TNASOS считать из ячейки $77 ) ??? Не совсем понял вопрос? Из EEPROM в RAM или как?
--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
|
|
|
|
|
Nov 20 2006, 16:38
|

Местный
  
Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672

|
Цитата(Terapefft @ Nov 20 2006, 15:24)  из RAM в EEPROM LDI ZL,LOW(метка на переменную) LDI ZH,hi(метка на переменную) LPM ; и в R0 имеешь свою переменную. .... Assembly Code Example EEPROM_write: ; Wait for completion of previous write sbic EECR,EEWE rjmp EEPROM_write ; Set up address (r18:r17) in address register out EEARH, r18 out EEARL, r17 ; Write data (r16) to data register out EEDR,r16 ; Write logical one to EEMWE sbi EECR,EEMWE ; Start eeprom write by setting EEWE sbi EECR,EEWE ret Это из любого DS/
--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
|
|
|
|
|
Nov 20 2006, 17:19
|

Частый гость
 
Группа: Свой
Сообщений: 167
Регистрация: 14-06-06
Из: Рязань
Пользователь №: 18 052

|
просто вот здесь вот считываются уставки с 60 по 67-й адрес из ОЗУ в ППЗУ ozu_pzu: clr zh ; clr zl ; cli ewrite: sbic eecr,eewe ; rjmp ewrite ; out eearh,zh ; out eearl,zl ; subi zl,$A0 ;мне ld rin,z ;вот эта subi zl,$5F ;часть не понятна out eedr,rin ; sbi eecr,eemwe ; sbi eecr,eewe ; nop nop nop cpi zl,24 ; и вот здесь причем тут 24? brne ewrite ; ret ;
может просто вот так сделать? (чтоб с 77-й ячейки считать) : ozu_pzu: clr zh ; clr zl ; cli ewrite: sbic eecr,eewe ; rjmp ewrite ; ldi zl,LOW(TNASOS) ; ldi zh,HI(TNASOS) ld rin,z ; out eedr,rin ; sbi eecr,eemwe ; sbi eecr,eewe ; brne ewrite ; ret
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|