Обсуждаем контроллеры компании Atmel.
Ответить

Re: АЦП на ATTINY13

Чт июн 17, 2021 12:33:30

Машину состояний ?
Я ведь в самом начале написал -- Я НАЧИНАЮЩИЙ
Но все равно - спасибо !

Re: АЦП на ATTINY13

Чт июн 17, 2021 12:38:11

Ну и опять-таки: в тиньке 1-ой серии и DA серии есть система событий. Практически на любую реакцию можно аппаратно задать любое возмущение.
Если у вас ведро тинек13 - несите их на помойку. 21 век на дворе. Пора бы сняться с якоря 2000-х.

Добавлено after 3 minutes 36 seconds:
Машину состояний ?
Я ведь в самом начале написал -- Я НАЧИНАЮЩИЙ
Но все равно - спасибо !

Раз начинающий, значит надо учиться.
Тяжело в учении, легко в бою (с).

Re: АЦП на ATTINY13

Чт июн 17, 2021 12:44:13

Вот решу необходимую задачу - тогда отнесу на помойку .....
А пока я тут буду учится - стоит определенная работа
Может есть где-то библиотека примеров кодов по BASCOM ?

Re: АЦП на ATTINY13

Чт июн 17, 2021 22:27:32

а фильтровать измерения не надо? чи нехай срабатывает абы как

Re: АЦП на ATTINY13

Чт июн 17, 2021 23:28:44

vigor53, чем обусловлен выбор Basic'а? Если честно, имхо провальный путь - людей, пишущих на нём для МК единицы и подсказки будет сложно искать.
Может лучше ArduinoCore взять? https://github.com/MCUdude/MicroCore Хотя бы примеров и подсказок много найти/узнать можно будет.

Re: АЦП на ATTINY13

Пт июн 18, 2021 01:54:36

Надо только один , и при следующем событии опять один

Код:
Do
  If Getadc(3) <= 300 And Getadc(2) <= 300 Then
    Portb.2 = 1
  Else
    Portb.2 = 0
  End If

  If Portb.2 = 1 Then
    Portb.1 = 1
    Waitms 500
    Portb.1 = 0

    While Getadc(3) < 400 And Getadc(2) < 400 Do
      Waitms 100
    Loop

  End If
Loop

Я добавил цикл ожидания, три строки, ждёт пока один из аналоговых сигналов не станет больше либо равен 400. Как случится такое, этот дополнительный цикл завершится, и ваша программа будет снова готова дать нужный импульс по условию Getadc(3) <= 300 And Getadc(2) <= 300.
В тех трёх строчках могут быть ошибки, т.к. я не уверен, что это за язык, но главное - понять идею.
А если нужно ждать, когда оба сигнала станут >= 400, то так:
Код:
    While Getadc(3) < 400 Or Getadc(2) < 400 Do
      Waitms 100
    Loop

Откуда взялось 400. Нужно любое число немного больше изначального порога, иначе будет дребезг, когда ваши сигналы будут колебаться возле 300.

Re: АЦП на ATTINY13

Пт июн 18, 2021 09:31:35

Спасибо !
Буду пробовать

Re: АЦП на ATTINY13

Пт июн 18, 2021 10:39:04

В BASCOM-AVR цикл while вот так выглядит:
Код:
    While Getadc(3) < 400 And Getadc(2) < 400
      Waitms 100
    Wend

Re: АЦП на ATTINY13

Пт июн 18, 2021 15:52:58

извините - но Ваша прогр амма даже не компирируется !
Всем спасибо !
Нашлись - ДОБРЫЕ ЛЮДИ ! все сделали за 15 минут !!!!!!!!!!!!!
Причем --- поняли всю задачю с полуслова !!!
Без всяких -: машин состояний:
Но все равно = спасибо за участие !!!
Будьте - добрее !!!

Re: АЦП на ATTINY13

Пн июн 21, 2021 12:44:11

делай кораблики
Ответить