www.horizontautomatics.ru

Программирование, автоматизация.

Вывод для сброса таймера .

Модератор: Евгений

Re: Вывод для сброса таймера .

Сообщение mush25 » 08 июн 2018, 17:04

В программе выскакивает ошибка , и не открывается блок .
mush25
 
Сообщения: 144
Зарегистрирован: 05 июн 2018, 15:54

Re: Вывод для сброса таймера .

Сообщение mush25 » 08 июн 2018, 18:10

Разобрался , была ошибка в описании файла . в программе всё появилось . нНо блок не работает , подавал и лог 1 лог 0 на вывод res не помогает . проверьте код .
Вложения
tt.jpg
mush25
 
Сообщения: 144
Зарегистрирован: 05 июн 2018, 15:54

Re: Вывод для сброса таймера .

Сообщение Евгений » 09 июн 2018, 12:58

Всем привет, проверяю код...
Аватара пользователя
Евгений
Администратор
 
Сообщения: 325
Зарегистрирован: 08 окт 2014, 11:36

Re: Вывод для сброса таймера .

Сообщение mush25 » 09 июн 2018, 13:07

Привет . Жду .
mush25
 
Сообщения: 144
Зарегистрирован: 05 июн 2018, 15:54

Re: Вывод для сброса таймера .

Сообщение Евгений » 09 июн 2018, 13:31

Код: Выделить всё
#ifndef _FBD45_
#define _FBD45_ FBD45
#message define FBD45 time off reset
;Размер FBD блока
;1 байт  -вход I
;1 байт  -вход R
;2 байта -период
;1 байт  -выход
;Оперативная память:
;  1 байт  - состояние
;  2 байта - отсечка времени

FBD45_run:
  ld    A,    X+                                   ;читаем байт состояния
  ld    Uz1L, X+                                   ;отсечка времени Lw
  ld    Uz1H, X+                                   ;отсечка времени Hw
  sbiw  XL,   3                                    ;Возвращаем указатель

  rcall Read_cfg_Load_Uz2                          ;вход  I
  rcall Read_cfg_Load_Uz3                          ;вход  R
  tst   Uz3L                                       ;Тестируем состояние входа R
  breq  FBD45_no_res                               ;Проыверяем, переходим если 0
  andi  A, 0b01111111         //(сбрасываем бит отсчет времени)
FBD45_no_res:
  rcall Read_cfg                                   ;Читаем длительность  Lw
  mov   C, Addr_Data                               ;Читаем длительность  Lw
  rcall Read_cfg                                   ;Читаем длительность  Hg
  mov   D, Addr_Data                               ;Читаем длительность  Hg
  mov Uz3L, Zero                                   ;Предварительная установка "0"
//***************** Отслеживаем сигнал **********************
  sbrc Uz2L, 0
  rjmp FBD45_start
//*********** Проверка сигнала запуска **********************
  tst  A                     //Тест бита (отсчет времени)
  brpl FBD45_end             //Тест бита (отсчет времени)
//************* Нет сигнала запуска *************************
  rcall Timer_Diff           //Вычисляем разницу времени
  cp   ZL,  C                //Сраниваем
  cpc  ZH,  D                //Сраниваем
  brmi FBD45_one
  andi A, 0b01111111         //(сбрасываем бит отсчет времени)

FBD45_end:
  st   X+,   A               //сохраняем
  st   X+,   Uz1L            //сохраняем
  st   X+,   Uz1H            //сохраняем
  rcall Read_cfg_Save_Uz3    //выводим состояние
  ret

FBD45_start:
  mov  Uz3L, One                            //выводим 1
  ori  A,   0b10000000                      //(устанавливаем бит отсчет времени)
  lds  Uz1L, TimerCounter0_DATA_RAM+1       //Отсечка времени старта
  lds  Uz1H, TimerCounter0_DATA_RAM+2       //Отсечка времени старта
  rjmp FBD45_end                            //

FBD45_one:
  mov  Uz3L, One               //выводим 1
  rjmp FBD45_end

FBD45:
 .db 5, 3            //Размер FBD блока, необходимая оперативная память
 .dw FBD45_run, Init_default


#else
 #error redeclared FBD45 __FILE__
#endif
Аватара пользователя
Евгений
Администратор
 
Сообщения: 325
Зарегистрирован: 08 окт 2014, 11:36

Re: Вывод для сброса таймера .

Сообщение Евгений » 09 июн 2018, 13:33

Ошибка была в размере FBD блока
Код: Выделить всё
 .db 5, 3            //Размер FBD блока, необходимая оперативная память
 .dw FBD45_run, Init_default


Стояло 4, а так как добавился вход, то будет 5

Проверяй!
Аватара пользователя
Евгений
Администратор
 
Сообщения: 325
Зарегистрирован: 08 окт 2014, 11:36

Re: Вывод для сброса таймера .

Сообщение mush25 » 09 июн 2018, 13:33

пробую
mush25
 
Сообщения: 144
Зарегистрирован: 05 июн 2018, 15:54

Re: Вывод для сброса таймера .

Сообщение Евгений » 09 июн 2018, 13:34

time_TOFF_R.inc
(2.6 КБ) Скачиваний: 222
Аватара пользователя
Евгений
Администратор
 
Сообщения: 325
Зарегистрирован: 08 окт 2014, 11:36

Re: Вывод для сброса таймера .

Сообщение mush25 » 09 июн 2018, 13:36

не хочет работать .
mush25
 
Сообщения: 144
Зарегистрирован: 05 июн 2018, 15:54

Re: Вывод для сброса таймера .

Сообщение mush25 » 09 июн 2018, 13:37

кажется пошла , ещё 1 ку
mush25
 
Сообщения: 144
Зарегистрирован: 05 июн 2018, 15:54

Пред.След.

Вернуться в Микроконтроллеры AVR

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron