UART procesoru nekomunikuje s PC

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
kony2807
Příspěvky: 305
Registrován: 29 črc 2007, 00:00
Bydliště: Ostrava

UART procesoru nekomunikuje s PC

#1 Příspěvek od kony2807 »

Dobrý den !
Pevě něřím tomu , že alspoň někdo z vás bude mít spolehlivou .DLL knihovnu a její implementaci pro Visual Basic 6.0 , která je schopná posílat a přijímat data po RS-232 , já už se totiž druhým týdnem trápím s tím , že mi nejede odesílání dat z programu na jednu z mých HW aplikací . Zajímave ovšem je , že pokud de pokusím navázat komunikaci pomoci hyperterminálu ,či jiného podobného programu , vše proběhne hladce ... Konfigurace : 19200 Bd , N , 8 , 1 . Doposud jesm používal s úspěchem kihovnu přiloženou ke knize : Využití rozhrání PC pod Windows , nevím však proč tato aplikace prostě neběží jak má ... Možná to bude způsobeno tím , že program procesoru v HW je napsán tak , že datový blok musí být v přesném znění , jinak se vrátí na začátek příjmu , čímž se ale vylučujou chyby přímu , které by ovšem mohy pro aplikaci býti osudové :( .
Reakce případných lidů ochotných pomoci bych poprosil na ICQ , má reace bude o to rychlejší .
Díky Kony !
Uživatelský avatar
Sunmay
Příspěvky: 171
Registrován: 09 kvě 2006, 00:00
Bydliště: Morava
Kontaktovat uživatele:

#2 Příspěvek od Sunmay »

Já používám už nějaký ten rok RSCOM.dll nebo port.dll a obě fungují bez problémů...
Jak sem se dostal k elektrotechnice? No to je jednoduché, kdy sem byl malý měl sem strašně moc rád stavebnice a to mi zůstalo ... a řekněte mi, která stavebnice má víc součástek :D
Uživatelský avatar
DRAKE
Příspěvky: 276
Registrován: 05 zář 2005, 00:00

#3 Příspěvek od DRAKE »

Podle mne je nejlepsi pouzit komponentu microsoftu, staci na panelu objektui kliknout pravim tlacitkem dat Components... zaškrtnout Microsoft Comm Control 6.0 a dat OK. V tom panelu se ti objevi ikonka telefonu tu si vlozis do projektu. Dal uz budes jenom odchytavat udalosti
Ježíš na kříži zaplatil za naše hříchy a tím nás osvobodil od věčné smrti. Platí i pro bastliře :-).
Uživatelský avatar
kony2807
Příspěvky: 305
Registrován: 29 črc 2007, 00:00
Bydliště: Ostrava

#4 Příspěvek od kony2807 »

Ten nápad s komponentou se mi zamlová , ale chbí mi k ní obsluha , nebyl by si tak laskav a dal sem kousek svého kódu ? Bez toho si asi totiž moc na UARTA procíkovi moc nepošlu ;) .
Díky Kony !
Uživatelský avatar
DRAKE
Příspěvky: 276
Registrován: 05 zář 2005, 00:00

#5 Příspěvek od DRAKE »

No zkus tohle, neni to nic moc uz jsem s tim dlouho nedelal. Je to rutina pro prijem dvou bajtoveho slova, sData je string, data je double nebo integer to je fuk. Nastavit si port doufam zvladnes.

Public Sub MSComm1_OnComm()

If MSComm1.CommEvent = comEvReceive Then

sData = MSComm1.Input 'prijem 2bytu
data = Asc(Mid$(sData, 2, 1)) 'prevod na double
data = data + 256 * Asc(Mid$(sData, 1, 1)) '
Label1.Caption = data 'hodi cislo do labelu
End if

End Sub
Ježíš na kříži zaplatil za naše hříchy a tím nás osvobodil od věčné smrti. Platí i pro bastliře :-).
Uživatelský avatar
kony2807
Příspěvky: 305
Registrován: 29 črc 2007, 00:00
Bydliště: Ostrava

#6 Příspěvek od kony2807 »

Fajn , ale mi jde hlavě o odesílání :D ...
(Zkusil jsemm přiřadit mu byte do MScomm1.output , ale vyřvává po mě , že je pouze pro zápis ... (a co sem asi s tím dělal :D )
btw :

Kód: Vybrat vše

  data = data + 256 * Asc(Mid$(sData, 1, 1)) '  
nemělo by tam být místo "+" zapsáno "&" ? (tedy jestli jsem pochopil záměr sepsat za sebe do jedné dvě proměnné , s tím + by mohl VB hlásit err : type mischmash - pokusil by se o jejich numerický součet )
Uživatelský avatar
Ragnol
Příspěvky: 232
Registrován: 09 lis 2005, 00:00
Kontaktovat uživatele:

#7 Příspěvek od Ragnol »

Sunmay píše:Já používám už nějaký ten rok RSCOM.dll nebo port.dll a obě fungují bez problémů...


Tak s touhle dll mám docela problém. Komunikace mi dost často padala a bylo potřeba znova otevřít port. Dělalo mi to jen u usb převodníků na rs232. Přitom třeba v hyperterminálů to beží bez pádů.
Uživatelský avatar
kony2807
Příspěvky: 305
Registrován: 29 črc 2007, 00:00
Bydliště: Ostrava

#8 Příspěvek od kony2807 »

Ragnol píše:
Sunmay píše:Já používám už nějaký ten rok RSCOM.dll nebo port.dll a obě fungují bez problémů...


Tak s touhle dll mám docela problém. Komunikace mi dost často padala a bylo potřeba znova otevřít port. Dělalo mi to jen u usb převodníků na rs232. Přitom třeba v hyperterminálů to beží bez pádů.


Přesně toto se mi vlastně stává , otevřu port , odešlu jeden blok a spadne a navíc ještě 10x spomalí timer ....
Makovec

#9 Příspěvek od Makovec »

Doporučoval bych se na nějaký pochybný knihovny vykašlat , používat čisté API.Čtení a odesílání dat v samostatném threadu - timer nepoužívat.

Výhody:Hned hotový.stoprocentně funkční
Uživatelský avatar
kony2807
Příspěvky: 305
Registrován: 29 črc 2007, 00:00
Bydliště: Ostrava

#10 Příspěvek od kony2807 »

Nepoužívat timer ? no ale tedy jak si mám zajistit vzorkování z databáze , zda li není náhodou na řadě nějaká sekvence na výstup co 10ms ?
Makovec

#11 Příspěvek od Makovec »

Upřesnění: nepoužívat timer na komunikaci programu s HW
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“