PIC - как точно да проследите изпращането на последния байт от пакет до UART
Здравейте Rifkat, надявам се да имате хубав ден!
12 май 04, Рифкат Абдулин пише на Руслан Мохнюк:
RA> Просто не искам да правя това в прекъсвания - те се разтягат;-)
RA> Когато работя с един UART порт, обикновено просто гледам TRMT - чакам,
RA> докато той се освободи и чак тогава продължавам напред. Но това е друго забавяне -
RA> фоновият режим не работи.
RA> С таймери и 3,5 байта - това е, което правя.
Тогава не разбирам нещо. Какво пречи след поставянето на последния байт в TXREG
деактивирайте TXIE и включете таймера
продължителността на един байт, в прекъсването на таймера, за всеки случай, проверете
TMRT и да изключите предавателя? Ако е така
фоновият режим е важен, тогава това е много добро решение.
Още на 12 май 04 14:22, Рифкат Абдулин пише на Руслан Мохнюк:
RM >> Опитайте се да не докосвате разрешенията за приемане и предаване, използвайте само
RA> разрешения
RM >> прекъсва (т.е. RCIE, TXIE). Може би това ще е достатъчно?
RA> за да активирате TXIE отново, трябва да откриете края на.
RA> колети;-)
Не разбрах. След това прочетете целия проблем, моля. Имате прехвърлен един пакет,
след него веднага се предава вторият пакет? Тогава защо да превключвате към получаване?
Или имате предаден пакет, след което превключвате към получаване?
RM >> Е, направете прехода към приемането някак по различен начин: или чрез таймера
RA> (като моя), или чрез контролиране на TRMT (циклично или периодично,
RA> зависи от изискването за точност).
RA> Просто не искам да правя това в прекъсвания - те се разтягат;-)
Да, неварено.
RA> Когато работя с един UART порт, обикновено просто гледам TRMT - чакам,
RA> докато той се освободи и чак тогава продължавам напред. Но това е друго забавяне -
RA> фоновият режим не работи.
RA> С таймери и 3,5 байта - това е, което правя.
RA> за TXREG - как да го проверите за празнота, без да използвате TXIF?
RA> Просто не се сетих да "просто" разгледам съдържанието му (ако е така
RA> позволява)
? Да, там няма "празнота". Какво значение вложихте в него, т.е.
Не търся никъде. Мислех, че всичко е показано в тази част от програмата. В думи: