Soros port (rs232)

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
dummy
Chipgyilok
Hozzászólások: 264
Csatlakozott: 2008. május 24. szombat, 6:00
Tartózkodási hely: Szolnok

HozzászólásSzerző: dummy » 2009. május 2. szombat, 9:11

Nagyon eltértünk a tárgytól.

kapu48!

Ha portként lenne az lcd definiálva, akkor igazad lenne. De pinként van definiálva, ilyenkor el lehet térni az azonosságtól.

Minden látszat ellenére végigjártam már pár szamárlétrát, valaha a 8 bites számítógépeket assemblerben programoztam - azt pedig nem 4 év alatt a fősulin tanultam meg, hanem hosszú évek alatt, de ilyen rejtélyes hibát még nem láttam. És biztosan lesz még ilyen máskor is.

Robi!

Az ellenállásos trükköt még kipróbálom. Nagyon meglepne, ha ezen múlna, de egy próbát megér.
Ez az uart-os dolog annyira már nem izgat, hiszen van más lehetőség is.

A változó rossz kezelése azonban nem áramköri hiba, ez biztos. Az is biztos, hogy ha kiveszem a megszakítást, máris észhez tér a proci. Ez sem áramköri probléma. Mivel még pici a kód, kipróbálom egy másik (kisebb) procival. Ha ott jó, akkor a 128-as kuka.

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10013
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2009. május 2. szombat, 9:19

Dobd át PÜ-ben a kódot... Hever itt M168+LCD mintanyák. Kipróbálom rajta....

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3346
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

HozzászólásSzerző: kapu48 » 2009. május 2. szombat, 9:43

Űdv!

Én Bascom kódfordítás hibára tippelek. Konkrétan a túl bonyolult LCD kezelés miatt. Megszakítás közben valamelyik használt regiszter felülíródik!
De lehet HW hiba is, mivel más részeknél is furcsán működik a rendszered.
Nem a tudásodat kérdőjeleztem meg, hanem próbáltam hibakeresésre tippet adni!
:)

Avatar
dummy
Chipgyilok
Hozzászólások: 264
Csatlakozott: 2008. május 24. szombat, 6:00
Tartózkodási hely: Szolnok

HozzászólásSzerző: dummy » 2009. május 2. szombat, 18:08

Robert írta:Dobd át PÜ-ben a kódot... Hever itt M168+LCD mintanyák. Kipróbálom rajta....


Pár perc és küldöm, köszi!

Avatar
dummy
Chipgyilok
Hozzászólások: 264
Csatlakozott: 2008. május 24. szombat, 6:00
Tartózkodási hely: Szolnok

HozzászólásSzerző: dummy » 2009. május 2. szombat, 18:11

kapu48 írta:Nem a tudásodat kérdőjeleztem meg, hanem próbáltam hibakeresésre tippet adni! :)


Én pedig nem vettem mindezt zokon, csak jeleztem, hogy azért az astabil multivibrátoros villogót sem tegnap építettem meg (van annak már vagy 20 éve :roll: ). :)

A segítségre bizony nekem is sokszor szükségem van, de azok jellemzően a Bascom-mal kapcsolatos problémák, hardveresen általában nem okoz problémát, amit meg akarok építeni.

Avatar
dummy
Chipgyilok
Hozzászólások: 264
Csatlakozott: 2008. május 24. szombat, 6:00
Tartózkodási hely: Szolnok

HozzászólásSzerző: dummy » 2009. május 7. csütörtök, 5:17

Érdekes dolgok derültek ki közben:

Külföldi fórumokon találkoztam hasonló problémákkal, zömmel a nagyobb prociknál. Hogy ez fordító hiba, vagy valamilyen hardveres probléma, az persze nem derült ki. :(

Közben építettem egy másik kapcsolást, ami el tudja végezni az lcd vezérlését és a számításokat is. Igaz, hogy az M32-nek csak hw uart-ja van, nekem pedig kettő kellene, de ez most lényegtelen.

Ami fontos, s kipróbáltam:

-Ha pin-ben konfigurálom az lcd-t, akárhogy "kevertem" a lábakat, ez nem okozott a procinak problémát. Hogy mennyit lassított a program futtatásán, azt nem mértem, de nincs jelentősége a jelen alkalmazásban.

-Többféle uart-kezeléssel próbálkoztam, mindegyik működött.
(Megszakítássall, "sima" inputtal, ISCHARWAITING-el, stb.)

Konklúzió:

-Vagy a Bascom nem fordított rendesen, vagy az az egy M128-as hibás, amivel kűzdöttem.

(Közben rájöttem, hogy elég ide az M32 is, legfeljebb ha kell még valami hardveresen és elfogytak a lehetőségek, teszek mellé egy kisebb AVR-t. :) )

Avatar
herc1234
Bitfaragó
Hozzászólások: 459
Csatlakozott: 2007. február 9. péntek, 7:00
Tartózkodási hely: Törökbálint

HozzászólásSzerző: herc1234 » 2009. május 7. csütörtök, 8:16

Azt mondjuk nehéz elképzelni hogy hardwarehibával állunk szemben.
Nekem anno a Bascomra azért esett a választás mert elsőre
müködött az általa készített kód.A többi basic nyelvnél
már az elején olyan hibákba csusztam bele,hogy a bascom
lett a befutó.Amit azóta sem bántam meg.(Volt már olyan
fordító (most direkt nem írok nevet)ami a saját parancsait
nem volt hajlandó elfogadni.Pedig azt is megvásároltam)
A programozásban pedig az a szép hogy mindig van másik megoldás.
Irtad hogy külföldi fórum, de azt nem hogy a bascom-on belül?

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10013
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2009. május 7. csütörtök, 9:18

Nagyobb chip esetén a 64K lapbéret miatt lehetnek ilyenek...
Ott a címugrást másként kell kezelni. Ez a Bascom 1.11.9.0 (?) vagy 1.11.8.7(?) verziójától javították....

Avatar
dummy
Chipgyilok
Hozzászólások: 264
Csatlakozott: 2008. május 24. szombat, 6:00
Tartózkodási hely: Szolnok

HozzászólásSzerző: dummy » 2009. május 7. csütörtök, 10:18

1.11.9.3 van jelenleg. Régóta nem néztem, hogy van-e már frissítés. Eddig nekem sem volt semmilyen gondom a Bascom-mal (leszámítva az eléggé foghíjjas súgóját).

Az AVR Freaks, ill. a Roboternetz fórumát olvasgattam. Ott voltak hasonló problémákra utalások. De hogy milyen fordítónál, arra nem emlékszem. Feltehetőleg volt közte Bascom is, a Roboternetz-en sok helyütt találkozni vele.

Robi, amit privátban küldtem, nem nézted?

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10013
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2009. május 7. csütörtök, 17:58

Bascomból a 1.11.9.3-hoz a Build 001 a legfrissebb verzió.

Prg megjött, lesem!

Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00
Tartózkodási hely: Budapest

HozzászólásSzerző: Bence » 2009. május 7. csütörtök, 20:29

Sziasztok!

A következő programrészben ha nincs benne a CLS akkor nem működik (nem küld vissza semmit a sorosporta és a PORTB-re kötött ledek se világítanak). Mi a baj?

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

$regfile = "m8def.dat"
$crystal = 1000000
$baud = 4800


Print "Start"
Wait 1


Dim Sorosport As String * 3
Dim Port As Byte

Config Portb = Output


Do
  Cls
  Inputbin Sorosport
  Port = Val(sorosport)
  Print "P: " ; Port ; " " ; "Sp: " ; Sorosport
  'waitms 10
  Portb = Port
Loop


End
Bence

Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00
Tartózkodási hely: Budapest

HozzászólásSzerző: Bence » 2009. május 7. csütörtök, 21:12

Na megoldottam a problémát!

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

$regfile = "m48def.dat"
$crystal = 1000000
$baud = 4800



Dim Sorosport As String * 3
Dim Port As Byte
Dim Portbin As String * 8

Config Portb = Output


Do
  Inputbin Sorosport
  Port = Val(sorosport)
  Portbin = Bin(port)
  Portb = Binval(portbin)
Loop


End
Bence

Avatar
herc1234
Bitfaragó
Hozzászólások: 459
Csatlakozott: 2007. február 9. péntek, 7:00
Tartózkodási hely: Törökbálint

HozzászólásSzerző: herc1234 » 2009. május 8. péntek, 12:52

A cls kijelzőtörlésre jó.

Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00
Tartózkodási hely: Budapest

HozzászólásSzerző: Bence » 2009. május 9. szombat, 11:38

Tudom, de anélkül nem működött és nem értem miért. :? De a második kóddal amit írtam jó!
Bence

Avatar
kefeur
Tranzisztorgyógyász
Hozzászólások: 186
Csatlakozott: 2008. február 17. vasárnap, 7:00
Tartózkodási hely: Szuhakálló

HozzászólásSzerző: kefeur » 2009. június 6. szombat, 18:56

Sziasztok
Kissé belekavarodtam a soros adatfogadásba.
Egy kis segítség jól jönne.
Karaktersorozatokat kellene fogadnom , és a szerint történne valami változás.


Az "A" val működik a többivel nem .
Arra rájöttem hogy csak 1 karaktert fogad így.
Na de hogyan tovább??
próbáltam :serialin buffered=8 ... kaptam 1 sor hibaüzenetet.
Nem tudok megoldást.
Kissé belekavarodtam.

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

$regfile = "ATtiny2313.DAT"
$crystal = 4000000
$baud = 400
Echo Off

Config Porta = Output
Config Portd = Output
Config Portb = Input
Dim A As String * 8

Enable Interrupts
Enable Urxc
On Urxc Getchar

 Foprog:
  Waitms 400
  Toggle Porta.1
 Goto Foprog


Getchar:

 A = Inkey()

 Toggle Porta.2

If A = "A" Then
 Toggle Portd.2
 Wait 1
End If

If A = "BBBBBBBB" Then
 Toggle Portd.3
 Wait 1
End If



If A = "CS3" Then
 Toggle Portd.4
 Wait 1
End If


If A = "AJTOTAVK" Then
 Toggle Portd.5
 Wait 1
End If

Return


End
Kefeur


Vissza: “Bascom-AVR nyelvű programozás (AVR programozásának lehetőségei)”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég