Witam.
Problem jest następujący:
ATTiny2313,Sterowany wew.oscylatorem 8MHz.
Chcę wysłać bit UARTem.
Kiedy uzywam instr.PRINT wszystko jest OK,ale w
chwili przejscia na asembler(wstawki) układ wysyła mi znak w ASCII
zamiast owego Bitu(Bita?)
Oto program:
'==============================================
$crystal=8000000
$regfile="attiny2313.dat"
$baud=9600
dim a as byte
a=48
$asm
.def zaladuj=R16
$end asm
print a '<-tutaj układ wyśle 48 jako 48
loadadr a,x 'a tutaj wysle 0(zero) czyli kod ASCII
ld zaladuj,x
gosub wyslij_bit
do
loop
wyslij_bit:
$asm
zajete:
sbis ucsra,udre
rjmp zajete
out udr,zaladuj
$end asm
return
'=========================================
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięattiny 2313 + wstawki asemblerowe + UART = Problem
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
Funkcja Print , zanim wyśle zmienną/stałą liczbową(BYTE,INTEGER,itp.) do rejestru portu szeregowego , skonwertują ją do postaci zrozumiałej przez odbiorcę , czyli program typu terminal . A więc Print tworzy tymczasową zmienną tekstową (STRING) , w której to umieszcza kody ASCII cyfr , reprezentujących tę liczbę i dopiero te kody , wysyła przez port szeregowy.Natomiast Twoja "wstawka" , emuluje Print Chr(a); , a nie Print a.
Podsumowując , wszystko zależy od punktu widzenia , tudzież interpretacji.Dla jednego 4-8-99 to działanie arytmetyczne , a dla innego np. czwarty sierpień dziewięćdziesiąt dziewięć
Piotrek
Podsumowując , wszystko zależy od punktu widzenia , tudzież interpretacji.Dla jednego 4-8-99 to działanie arytmetyczne , a dla innego np. czwarty sierpień dziewięćdziesiąt dziewięć
Piotrek
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 52 gości