24 февраля 2022 года в 5 утра, без объявления войны, россия напала на Украину.

Они пришли "освобождать народ от нацистов и националистов".
С этого момента наша жизнь изменилась на "до" и "после".
Нас освобождают от наших домов, от наших любимых, от наших родителей и от наших детей....
Тут я не буду никого агитировать или переубеждать, разумный человек найдёт всю информацию
в интернете, а для зомби никакие доводы и факты не послужат аргументом.

Я не умею много писать, да и без мата тут сложно что-то написать.
Поэтому выражу все мои чувства одним фото.

«Спасибо дедушка путин за счастливое детство и мое освобождение». ©

Дополню словами уважаемого человека, широко известного в узких кругах:
тут путин не виноват, не он нажал на кнопку сброса,
- виноват пилот, который нажал на кнопку сброса, мог промахнуться. виноваты жена/мать/брат/друг пилота, которые не позвонили ему, и не сказали "нет войне",
- виноват тот, кто отдал приказ, и виноваты его жена/мать/брат/друг,
- виноват тот, кто цеплял бомбу, потому что он мог её обезвредить, "ну бывает, не сработала",
- виноват кладовщик, виноват водитель, который перевозил эту бомбу. виноваты жена...и т.д., потому что не позвонили и не сказали "нет войне, не вези бомбы",
- виноваты все журналисты оркостана, потому что они врут,
- виноваты недограждане, потому что не сказали журналистам "не врите",
- виноваты все... все 160 миллионов,
- а те 2, 3, 5 тысяч, которые вышли, и которых запаковали, это даже не десятая процента, это погрешность... случайно оказавшиеся в мордоре люди. ©

PS: За несколько часов до вторжения был атакован и взломан крупный интернет хостинг в Киеве, где и размещался мой сайт. Только 16 марта отважным админам удалось частично восстановить работу хостинга. Далеко не все сайты выжили, т.к. были повреждены даже бэкапы.
Нет, нет, я не жалуюсь, нет. В цифровом мире нет ничего ценного, материального...


Due to periodic DDoS attacks, the forum may not be available.

TINY2313-T1

Общая болтовня...
Post Reply
_Ruslan_
Пробегал мимо
Posts: 9
Joined: 23 Apr 2009 20:20

TINY2313-T1

Post by _Ruslan_ »

Очень нужна помощь на счет программы под Attiny2313.
Проблема заключается в том, что в подпрограмме обработки прерывания, одной процедурой запускается таймер, а второй останавливается и после одного запуска и остановки, таймер больше не запускается (теми же процедурами). Разрешений на обработку прерываний по таймеру в программе нет. Пробовал на двух контролерах - ситуация та же...

код запуска:

STARTTIME:
LDI Bufer,0b00000001
OUT Tccr1b,bufer
RET

код остановки:
(BUFER - промежуточный регистр)
STOPTIME:
CLR BUFER
OUT Tccr1b,bufer
OUT Tcnt1h,bufer
OUT Tcnt1l,bufer
OUT Tifr,bufer
RET

после выполнения такого кода таймер не запускается:

RCALL STARTTIME
RCALL STOPTIME
RCALL STARTTIME

Фрагмент программы в которой замечен баг:
( LDI BUFER,0b110010
OUT OCR1BH,BUFER
LDI BUFER,0b11001000 \ЗАПИСАЛИ В РЕГИСТР КОМПАРАТОРА
OUT OCR1BL,BUFER
)
RCALL STOPTIME
RCALL STARTTIME
WT: IN BUFER,TIFR
SBRS BUFER,5 //Досчитал ли таймер до 13000? (тестируется бит прерывания OCF1B)
RJMP WT
RCALL STOPTIME

После ее выполнения на момент вызова "STOPTIME" счетчик досчитывает до 7, хотя в регистре компаратора Ocr1b записано число 13000.
Знаю, как впадляк разбираться в чужом коде, да еще и на словах, но если кому-то не очень трудно...

-----------------
Кажется нашел... Регистр TIFR не принимает значения. После записи в него данных он не изменяет состояние своих битов. В чем причина?

Добавлено спустя 10 часов 58 минут 57 секунд:
Баг, заключался в том, что для сброса (обнуление) регистра флагов прерываний TIFR нужно в него записывать "1", а не "0". А AVR Studio 4.16 "не знает" этого и потому когда в TIFR, записываете нули и отлаживаете програму, то TIFR обнулюеться, а в реальном контролере этого не будет.

Правильно:
SER R26
OUT TIFR,R26

Не правильно:
CLR R26
OUT TIFR,R26
User avatar
hardlock
Администратор
Posts: 4013
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: TINY2313-T1

Post by hardlock »

_Ruslan_, ну вот видите, сами разобрались. А в АСМе я вообще не силён.
Post Reply