Soros port (rs232)

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

Hozzászólás Szerző: Sanci »

Szóval kipróbáltam a HW Uart-ot Mega32-n. Szépen műkszik a beállítás része. (Ők nem akadnak össze :) )

$regfile = "m32def.dat"

$crystal = 11059200
$baud = 9600
$hwstack = 40
$swstack = 40
$framesize = 40

Dim X As Byte
X = 2

Select Case X
Case 1 : Config Com1 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Case 2 : Config Com1 = 2400 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Case 3 : Config Com1 = 1120 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Case Else : Nop
End Select

Irjukki:
Waitms 300
Print "hello"
Goto Irjukki

End
Avatar
dummy
Chipgyilok
Hozzászólások: 264
Csatlakozott: 2008. május 24. szombat, 6:00

Hozzászólás Szerző: dummy »

Sziasztok!

Már egy ideje foglalkozom az avr-ekkel, de ez most kifogott rajtam:

Kód: Egész kijelölése

Config Com1 = 19200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0

Config Serialin = Buffered , Size = 16

Echo Off

Dim N As String * 5

Enable Interrupts

Open "com1:" For Binary As #1

Enable Interrupts

Print #1 , "#"

Do
   If Ischarwaiting(#1) = 1 Then                         
              N = Waitkey(#1)                                     
                                 Lcd Str(asc(n));                         
          End If
Loop
Close #1
Egy M128 uartján (az elsőn, a másodikat nem használom) a "#" küldése után a csatlakoztatott eszköznek változó számban bájtokat kell küldenie.

A bájtok meglétét, értékét ellenőrizném úgy, hogy beérkező bájtok számértékét kiírnám az lcd-re (a konfigurációját nem írtam ide, de egyébként működik).

De valamiért nem jelenik meg szám, csak egy db kriksz-kraksz. Miért?
(Sebességek, protokoll, ilyesmi jó).

Később meghatározott bájtsorozat érkezése után ki kéne lépni a do...loop-ból, de erre nincs ötletem.

Ha tudtok, segítsetek!
Köszönöm!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

LCD-re a karakterkiírás ideje alatt jön be új byte. Illetve a Buffered megtelik. A 16-t növeld meg 64 vagy 128-ra.

Az LCD nincs véletlen valami egyéb funkciós porton?

A SW/HWStack ill a Buffers-t növeld meg 64/64/64-re legalább....
Avatar
Jano
Biztosítékgyilkos
Hozzászólások: 68
Csatlakozott: 2006. augusztus 27. vasárnap, 6:00

Hozzászólás Szerző: Jano »

Tisztelt pákatársak!
Belefutottam egy olyan problémába, ami Nektek is tanulságos lehet.
Adott egy M32 ami RS232-ön adatokat küld egy PC felé. A PC-n csak USB portok vannak, ezért egy USB-RS gyári átalakító van rádugva és így mennek az adatok. Az M32 55 méter hosszú kábelen nyomja az igét, nem lehet közvetlenül USB-s csippel megoldani a dolgot. Ráadásul sima MT kábel, nem spéci adatkábel. Ezért aztán az adatfolyam beállítása 9600,N8,1 mert nem tud nagyobb sebességet a kábel. Az M32 binálisan ad, hogy rövid legyen a kommunikációs idő.
Na ez szép és jó, DE! Ahogy az M32 nyomni kezdi az adatokat, random szerüen kb. 2-10 perc múlva megáll a kommunikáció a PC oldalán, mert a hülye Windows azt mondja, hogy a porton lévő eszköz az egy speciális egér és fölrak hozzá egy drivert, ami megakasztja a kommunikációt. :evil:
Csak akkor indul újra, ha lehúzom és újra visszadugom az USB-re a küttyüt.
A projektjein 90%-a PC-s kommunikáción alapul, tehát van már némi tapasztalatom, de ezen én is elakadtam. Kipróbáltam másik tipusú USB-RS átalakítót, mondván nem korrekt a drivere az eredetinek. A negyedik tipus után is fent állt a probléma, tehát nem az átalakító driver a hibás. Próbáltam az XP-t idomítani, letiltani az egeret, hardverprofilt kialakítani, kértem segítséget egy mikiszoftos ismerőstől, de a hiba akkor is maradt.
Ha rövid kábellel 115,2K-ra nyomtam a sebességet, akkor nem jelentkezett a gond, de a projektem ezt nem tette lehetővé.
:idea: Végkövetkeztetés: át kellett térnem a 7 bites kommunikációra, mert másként nem ment a dolog. Igen ám de ekkor nem lehet 127-nél nagyobb értékű bájtot átküldeni. Ezért vagy karakteresen vagy HEX-be kell átküldeni az adatokat. Igy a 15 bájtnyi adat HEX-ben 31-re hízott, de legalább megy.
Még egy tapasztalat: VB6 Val függvénye a HEX számokat is átalakítja decimális számra, ha egy "&H" karakterpárt illesztünk elé. A súgó szerint LONG tipusú változót kapunk vissza ilyenkor. Ez jól hangzik csak nem igaz. :evil:
Ugyanis, ha a beküldött HEX szám H0000AAAA, akkor ezt egy negatív számra konvertálja, mert csak 4 karakteres HEX számot tud kezelni. Tehát, ha nullákkal kezdődik a HEX szám és 8 karakterből áll, akkor kiakad és hülyeségre konvertál.
Szóval a mikiszofttal tele lett a buckám, egy projekten bellűl két ilyen bugra bukkanni az már sok. Kár, hogy az emotikonok között nincs egy nagy fa...k, mert akkor kitenném a Bill Geccccc -nek.
Szóval ha terveztek valamilyen cuccot, akkor figyeljetek az ilyenekre. 8O
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Hasonlóba futottam bele én is (USB MS Trackpoint felrakása).
Ez az USB-s eszköz csatlakoztatásakor következtik be, ha az eszköz ad a feléledés alatt! (nálam az USB-soros részen egy FT232 chip van, illetve ha USB-SOROS átalakítót használok, akkor a Pt203 chip van belül (ATEN)).

Megoldás:
A kommunikáció csak az USB-s eszköz felrakása után 2-5 sec-l indítható!
Az egér telepítés csak 9600,8,1,n illetve 19200,8,1,n esetben volt, egyéb sebesség/beállítás esetén nem.
Fontos: felmegy a driver, ha alaplapi sorosportra rakom a holmit, akkor is. Illetve ha a PC a bekapcsolás alatt a COM porton PnP eszközt keres, és válasz jön, akkor megörül, és egér települ.... (pl. a holmi folyton ad a drót végén és a PC épp bekapcsolás alatt van).

Kérdés (nem próbáltam ki): ha felrakja az egeret (ezt a Trackpoinot) és letiltod, mint nem használandó eszközt, akkor is megakad a kommunikáció?


Nálam VB (még) nincsen, csak egyenlőre csak a hyperterminal. Persze ez a Vista-ból hiányzik:(
Avatar
Jano
Biztosítékgyilkos
Hozzászólások: 68
Csatlakozott: 2006. augusztus 27. vasárnap, 6:00

Hozzászólás Szerző: Jano »

Végig próbáltam a beállításokat 2400-tól 56K-ig. Csak 115,2K-val ment.
Próbáltam azt is, hogy a progi betöltés után 1 perccel küld egy kérő üzenetet és csak utána ad az M32, mert amiket leírtál, azokkal én is tisztában vagyok. Ettől annyival lett jobb, hogy mérhető volt a random hiba ideje, kb 137 sec mindig.
Mint írtam letiltottam az egeret, nálam Microsoft PainBall-t rakosgatott föl.
Csináltam olyan hardverprofilt, amibe letiltottam az összes soros eszközt.
Addíg nem volt jó, amíg 7 bitre át nem álltam. Most már egy hete megy és még nem szóltak, hogy rossz úgy, hogy valószínű, hogy működik. 8O
Avatar
Jano
Biztosítékgyilkos
Hozzászólások: 68
Csatlakozott: 2006. augusztus 27. vasárnap, 6:00

Hozzászólás Szerző: Jano »

OFF
Bocs, hogy osztom az észt, de most a Szoftver ABC-nél 80 ezer+FA a VISUAL STUDIO 2008 STANDARD, aminek a megvételével használható lesz a régi VB6 is. Szerinten ez elég jó ár ahhoz képest, hogy 8 éve a Visual Studio 98 200 ezer körül volt.
8O ON
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

Hozzászólás Szerző: Sanci »

Bocs hogy közbeszólok, de: Nekem a Visual Studio 2008 van meg.
Visual C/C++,Visual Basic, komplett MSDN, és Visual Web Developer.
Ami ha jól emlékszem INGYENESEN tölthető le INNEN (express editions): http://www.microsoft.com/express/
Telepítettem mindet, de sok időm nem volt foglalkozni még vele.
De elérhető a 2006 magyarítás és gyógyítás is...
Avatar
Jano
Biztosítékgyilkos
Hozzászólások: 68
Csatlakozott: 2006. augusztus 27. vasárnap, 6:00

Hozzászólás Szerző: Jano »

Igazad van Sanci, az express változata a VS 2005 és 2008-nak is ingyen letölthető, csak egy regisztráció szükséges hozzá. A 2005 express-t még pénzkeresetre is lehet használni. De ezek az ingyenes verziók nem teszik lehetővé a Visual Basic 6.0 legális (pénzkeresős) használatát.
Ezt csak a VS 2008 Standard megvásárlása teszi lehetővé.
Sajnos a VB 6.0-t már évek óta nem lehet megvenni a mikiszofttól.
Mivel sokszor előfordul, hogy csak egy egyszerű programot kell csinálni, azt a VB 6-ban gyorsan leprogramozható, kis helyet foglal el és kicsi az erőforrás igénye.
A VS 2005-höz fel kell telepíteni a workframe 1.0-át ami nagy helyet foglal és nagyon erőforrásigényes.
A VS 2008 már a wf 2.0-3.5 verziókkal fut és ezek már esztelenül nagyok és nagy gép kell hozzájuk. Arról nem is beszélve, hogy ezek a fejlesztőkörnyezetek is hatalnasak és egy P4-3200 és 1G RAM mellett is
egy fordítás perceket vesz igénybe.
Tehát, ha csak egy kompakt kis progit akarsz írni-eladni valakinek hivatalosan (számlával), akkor a VB 6.0 az egyik legjobb választás.
8O
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

Hozzászólás Szerző: Sanci »

Igen.. ha számlás a dolog az más kategória....
Sajnos ami nekem van VisualBasic 6.0+manyarítás, Visual C/C++ még azzal sem volt sok időm foglalkozni :( Pc-re általában kénytelen vagyok a progit megiratni ha szükségem van rá.
A C nyelvről van egy elég jó kis magyar leírásom, de magyarított változatban nem találtam Compailer-t. Nem olyan nagy gond ugyan, de jobb lenne....
A C ínkább a Codevision AVR miatt érdekes számomra.
Elvileg mind ANSI C#. Így a PC-n gyakorolva nagy részét már a mikrovezérlő programozására is tudnám használni.

Qickbasic-ben szoktam néha írkálni apróságokat, de az már elég régi kis progi....

Lehet érdemes lenne egy topic-ot nyitni, ahol tudnánk esetleg segíteni egymást ezen a téren is.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Este otthon nyitok egy PC-programozás főkategóriát.... Nálam is gond sokszor a PC oldali felület. Ezért lesz belőle Hyperterminal:). Olvasni mindenki tud :) - max nem csilivili a felület....
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

A PC Programozás fórum innen elérhető. Valami kategória legyen még?

http://avr.tavir.hu/modules.php?name=Fo ... index&c=11
Avatar
DOGMAN
Chipgyilok
Hozzászólások: 293
Csatlakozott: 2006. augusztus 27. vasárnap, 6:00

Hozzászólás Szerző: DOGMAN »

Üdv!

Kérdés: Itt ez a cikk:
http://www.hobbielektronika.hu/kapcsola ... .html?pg=1

Azt írja hogy 3V -os feszültség szinteket használ, ha ellenállással kötöm az 5V-os AVR-re akkor okés nem?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Az AVR felől a Tx az akkor leosztandó 2k2-3k3 szintekkel.
Az AVR Rx lába megeszi.


Az AVRes rendszer nem lehet 3V3-as?
Avatar
DOGMAN
Chipgyilok
Hozzászólások: 293
Csatlakozott: 2006. augusztus 27. vasárnap, 6:00

Hozzászólás Szerző: DOGMAN »

Robert írta:Az AVRes rendszer nem lehet 3V3-as?
5V lenne jó mert PC-be akarok építeni programozható ventillátor vezérlőt, hőfok és fordulatszám vezérléssel/kijelzéssel (nem PWM-es hanem ULN kapcsolgatja 5-8-12 V-t), winamp kijelzése LCD-re plusz infrán keresztül winamp és mplayer vezérlő. A pcben meg az 5V ott figyel.
Ebben amit belinkeltem az FT232 vagy valamelyik haverja van szóval csak rákötöm valamelyik alaplapi usb tüskére azt kész lenne a com port amin lehetne bizgálni.

Végülis lehetne 3.3-as is, nemtom hirtelen ULN-nek elég-e a 3.3 as bekapcsoló fesz.

Most hogy elnézem a funkciókat, lehet a 4k kevés is lesz, lehet vennem kell Bascomot is, ehhe...
Válasz küldése