Fórum témák

» Több friss téma
Fórum » Bascom-AVR
 
Témaindító: puli122, idő: Ápr 11, 2010
Lapozás: OK   14 / 18
(#) pont válasza wbt hozzászólására (») Okt 22, 2018 /
 
Eddig nem tettem, most tettem ; az eredmény még rosszabb

  1. $regfile = "attiny85.dat"
  2. $crystal = 1000000
  3. $hwstack = 40
  4. $swstack = 16
  5. $framesize = 32
  6.  
  7.  
  8. Dim Gprmc As String * 78
  9. Dim Gpgga As String * 100
  10. Dim Gpgsa As String * 78
  11.  
  12.  
  13. Do
  14.  
  15. Open "comb.3:9600,8,n,1" For Output As #1
  16. Open "comb.4:9600,8,n,1" For Input As #2
  17.  
  18.  
  19. Input #2 , Gprmc
  20. Input #2 , Gpgga
  21. Input #2 , Gpgsa
  22.  
  23.  
  24. Print #1 , Gprmc;
  25. Print #1 , Gpgga;
  26. Print #1 , Gpgsa;
  27.  
  28.  
  29. Close #1
  30. Close #2
  31.  
  32. Loop


A probléma az lehet, hogy a beolvasott string is tartalmaz CR LF eket a végén
(#) wbt válasza pont hozzászólására (») Okt 22, 2018 /
 
Tehát befelé is olvasol... akkor lehet, hogy az be is jön, mivel van ";" a printnél, az biztosan nem ad magától.
(#) pont válasza wbt hozzászólására (») Okt 22, 2018 /
 
A bejövő az ez :

https://kepkuldes.com/images/0307222a06819be573c4208608ba7e2e.jpg

nem tartalmaz plusz LF -eket

hogy rosszabb lett azt arra értem, hogy ugyan LF nélkül de egybe írja az egészet
(#) wbt válasza pont hozzászólására (») Okt 22, 2018 /
 
Lehet, kipróbálnám egy normál UART-al rendelkező uC-vel a dolgot. Valami kis arduinos panel csak akad M16/M328-al. A fene sem tudja, mennyire jó a SW soros itt. Vagy menj fel 16MHz-es órajelre, hát ha stabilabb a dolog.
(#) pont válasza wbt hozzászólására (») Okt 22, 2018 /
 
Mindenképpen majd valami HW UART kell, és nagyobb órajel, de nem hiszem, hogy ezt most zavar okozná, nagyon szabályszerűen kiteszi azt a két LF -et de egyébként hibátlan a kommunikáció. Most arra gondolok, hogy amikor beolvassa input -tal akkor a második input még az előző string végén az LF et beolvassa erre a realterm emel egy sort, ezért néz így ki. Csak azt még nem tudom hogyan tudnám, hogy eggyel arrébb olvasson a bejövő adatokból....
(#) pont válasza pont hozzászólására (») Okt 22, 2018 /
 
Így van valamiért az LF odakerül az elejére mert ha átalakítom akkor jó.

Gpgga = Mid(gpgga , 2 , 79)

Esetleg arra nincs ötleted, hogy végül is az egész azért készül, hogy az eredeti NMEA mondatokat kiegészítsem egy GPVTG mondattal is. Ehhez a GPRMC sorból az 50. karaktertől kezdődően lehet kiolvasni a sebesség és irány adatokat. De a sebesség sajnos nem mindig 4 karakter hanem ha 100 csomó feletti a sebesség akkor már 6, így eltolódik az irány adat kezdete, ami persze ugyan így többféle helyet foglal...

nmea.jpg
    
(#) vottokar hozzászólása Okt 22, 2018 /
 
Tisztelt Fórumtársak! Ha valaki rendelkezne a Bascom könyvvel és ezt hajlandó lenne elküldeni valami elektronikus formátumban nekem, nagyon megköszönném. Természetesen csak ha ez nem sérti valamelyik fórumszabályzatot, vagy a szerzőt.
Szerintem anno letöltöttem, de ma fél délután kerestem és persze, hogy nincs meg.
(#) Szasza9668 válasza pont hozzászólására (») Nov 2, 2018 /
 
Szia!

Port pazarlás lett a vége.

Van felesleges mega8 itthon. Valamire el kell használni.

Ds1307 rtc-nek hogyan tudom állítani a 12/24 órás bitjét?

Adatlapból nekem kicsit kínai a dolog.

Annyit ki hámoztam, hogy talán az ötödik (vagy hatodik) bit lenne ezért a felelős.

Belinkelem a kódot ami biztosan tartalmaz még hibákat de eddig jutottam vele.


$Regfile="m8def.dat"
$Crystal=4000000
$hwstack=40
$swstack=16
$framesize=32
config portc.3=output
config portc.2=output
config PORTC.1=OUTPUT
config PORTC.0=OUTPUT
config PORTB.5=OUTPUT
config PORTB.4=OUTPUT
config PORTB.3=OUTPUT
config PORTB.2=OUTPUT
config PORTB.1=OUTPUT
config PORTB.0=OUTPUT
config PORTD.7=OUTPUT
config PORTD.6=OUTPUT
config PORTD.5=OUTPUT



$lib "ds1307clock.lib"
$lib "i2c_twi.lbx"

Config Sda = Portc.4
Config Scl = Portc.5
config pind.2=input
config pind.3=input



Config Clock = User ' 1307 klok
Config Date = Dmy , Separator = -

declare sub Getdatetime
declare sub percnovel
declare sub oranovel
Dim Ds1307w As Byte
Dim Ds1307r As Byte
Dim Weekday As Byte
dim perc as Byte
dim ora as Byte
Ds1307w = &B11010000
Ds1307r = &B11010001



do
enable interrupts
enable int0
enable int1
on int0 percnovel
on int1 oranovel
'call Getdatetime
incr perc
portd=perc




loop





sub Getdatetime
disable int0
disable int1
I2cstart ' Generate start code
I2cwbyte Ds1307w ' send address
I2cwbyte 0 ' start address in 1307
I2cstart ' Generate start code
I2cwbyte Ds1307r ' send address
I2crbyte _sec , Ack
I2crbyte _min , Ack ' MINUTES
I2crbyte _hour , Ack ' Hours
I2crbyte Weekday , Ack ' Day of Week
I2crbyte _day , Ack ' Day of Month
I2crbyte _month , Ack ' Month of Year
I2crbyte _year , Nack ' Year
I2cstop

_sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)

_day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)


end sub



sub percnovel
disable interrupts
incr _min
if _min=59 then _min=0

_sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)

I2cstart ' Generate start code
I2cwbyte Ds1307w ' send address
I2cwbyte 0 ' starting address in 1307
I2cwbyte _sec ' Send Data to SECONDS
I2cwbyte _min ' MINUTES
I2cwbyte _hour ' Hours
I2cstop
waitms 300
end sub



sub oranovel
disable interrupts
incr _hour
if _hour=23 then _hour = 0

_sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)

I2cstart ' Generate start code
I2cwbyte Ds1307w ' send address
I2cwbyte 0 ' starting address in 1307
I2cwbyte _sec ' Send Data to SECONDS
I2cwbyte _min ' MINUTES
I2cwbyte _hour ' Hours
I2cstop
waitms 300
end sub
(#) Szasza9668 válasza vottokar hozzászólására (») Nov 2, 2018 / 1
 
Szia!

Ugyan angol de hátha...
bascom

(#) vottokar válasza Szasza9668 hozzászólására (») Nov 4, 2018 /
 
Köszönöm. Megvan a 8xx valahány oldalas "eredeti" angol nyelvű, de azért az angolom nem tökéletes, lehet, hogy néhol segítene a magyar nyelvű verzió. De csak megoldom valahogy. A szükséges nyúlfarknyi programot amúgy megírtam már arduinora (digispark attiny85) de ott meg az alvásból való visszatérés az int-re nem jön össze. Nem lóverseny, most majd a hideg téli napokon csak meglesz valahogy a megoldás..
(#) wbt hozzászólása Ápr 16, 2019 /
 
Config Serialin: Ha Bytematch=All akkor minden soroson megy, ha valami érték (Bytematch=34), akkor csak 3. soroson ugrik el a többi mint ha ott sem lenne. M2560, a Help-ben lévő program, a rutinoknál csak LED-villogtatás van. Ötlet?
(#) kapu48 válasza wbt hozzászólására (») Ápr 16, 2019 /
 
Én azt veszem ki ebből, hogy minden stringed szóközzel kezdődik.
Te pedig csak "-jeltől engeded a kiíratást.:
Bővebben: Link
Ezért az összes szóköz és utánna levő rész letiltódik?
A hozzászólás módosítva: Ápr 16, 2019
(#) wbt válasza kapu48 hozzászólására (») Ápr 16, 2019 /
 
ASCII kommunikáció zajlik, LF-el a végén. Most ott akadtam el (COM3-ason szenvedek), hogy bejön az LF, akkor nem tudom kiolvasni a pufferben lévő adatokat...itt valami nagy félreértés van részemről. A "Serial3charmatch" ban be kellene olvasni egy stringbe a tartalmat, de az INPUT #3, Vallamistring NoEcho-ba beleáll a cucc. Hogy a csudába kaphatom meg a buffer tartalmát? A cimkére elmegy a program, de az INPUT-ot nem szereti. Úgy látszik, sokat felejtettem
(#) jocoka hozzászólása Jún 2, 2019 /
 
Sziasztok!
Egy kis segítség kellene vagy egy óra amit szívesen elkészítenék,de egyszerűen nem akar lefordulni a programban.Sajnos nem értek a programozáshoz ezért ha valaki lefordítaná nekem azt megköszönöm.
Üdv. Józsi
Bővebben: Link
A hozzászólás módosítva: Jún 2, 2019
(#) kala1982a válasza jocoka hozzászólására (») Jún 2, 2019 /
 
Szia, volt benne hiba, bele "javítottam", így már lefordult.
(#) jocoka válasza kala1982a hozzászólására (») Jún 2, 2019 /
 
Szia
Köszönöm ez gyors volt.
(#) kala1982a válasza jocoka hozzászólására (») Jún 2, 2019 /
 
Remélem működni is fog.
(#) jocoka válasza kala1982a hozzászólására (») Jún 2, 2019 /
 
Majd kiderül.
(#) Szasza9668 hozzászólása Jún 8, 2019 /
 
Sziasztok!

Pwm szabályzásra csak a timer1 alkalmas? Az áldozat aegy atmega 328p.

-Üdv!
(#) TavIR-AVR válasza Szasza9668 hozzászólására (») Aug 12, 2019 /
 
Nem. A Timer amelyikre ki van rakva, az a timer is megy. 328-on a Timer 0 és a Timer 2 alkalmas rá...
(#) szénási_ hozzászólása Szept 13, 2019 /
 
A következő lenne a kérdésem.
Van mondjuk az Atmega161

Hogyan tudom elérni, hogy a lábak a zárójelben levő funkciókat kapják?

Atmega161.jpg
    
(#) pont válasza szénási_ hozzászólására (») Szept 13, 2019 /
 
Automatikusan felveszik, ha úgy van rá szüksége a programnak, a programozó lábak, programozáskor automatikusan szintén. Tehát pl. ha az van a programban, hogy PRINT A akkor a PD1 egy TX lesz, ha Portd.1=1 van a programban, akkor meg 5v lesz rajt.
(#) szénási_ válasza pont hozzászólására (») Szept 13, 2019 /
 
A lényeg az lenne, hogy egy egyszerű ISA buszos videó kártyának kéne működnie.
PC monitorát használnám kijelzőnek.
(#) pont válasza szénási_ hozzászólására (») Szept 13, 2019 /
 
Ne haragudj nem értem mit szeretnél.
(#) szénási_ válasza pont hozzászólására (») Szept 13, 2019 /
 
Csak annyit, hogy 21-től 40-es lábig a zárójelben levő funkciókat használhassam.
Külön tudjam választani a cím és az adatbuszokat.
A 30-as láb legyen ALE.
A 16-os láb legyen WR.
A 17-es láb meg RD.
(#) ELP hozzászólása Nov 20, 2019 /
 
Sziasztok.
A képen mellékelem a programot, mely csak egy bővítés szimulációjának készült. A ciklus első része véletlen szerűen billeget egy bitet, amit egy Led-del teszek láthatóvá. Ezt számlálja az "Incr Vsccount". (Később majd kívülről jön a jel, amit számlálni kell.)
Miután lefut a ciklus, a Led véletlen szerű állapotban marad. Ezt próbálnám meg kikapcsolni. De, nem kapcsol ki se a Reset, se a Led=0 hatására. A képen ezt láthatjátok: a Led hol nullában, hol egyben marad.
A Set-Reset páros egyébként működik, ha sima villogó programot írok.
Ehhez kapcsolódó problémám még: a TOGGLE utasítás sem működik. Csak bekapcsol a Led és úgy marad.

Nem tudok rájönni, hogy mi lehet, ebben szeretnék valami felvilágosítást. Mit ronthatok el?
Köszi a választ.
A hozzászólás módosítva: Nov 20, 2019

fault.png
    
(#) pont válasza ELP hozzászólására (») Nov 20, 2019 / 1
 
Próbáld a Led et változóként definiálni ne alias pin. Ha nem bemenetként használjuk akkor PORT ként szoktunk hivatkozni/konfigurálni a portokra.
A hozzászólás módosítva: Nov 20, 2019
(#) ELP válasza pont hozzászólására (») Nov 20, 2019 /
 
Ó, köszi.
Port-ként kell rá hivatkozni valóban. Így működik.
(Az az érdekes, hogy a cikluson belül PIN-ként is működött, cikluson kívül meg nem.)
(#) Sipy válasza pont hozzászólására (») Júl 27, 2020 /
 
Kenyér, én is köszi! Úgy néz ki hogy több hónapos problémámat oldottad meg ezzel
(#) kalmi.kalmi hozzászólása Aug 31, 2020 /
 
Atmega8, 4mhz külső kvarc. Hogyan tudom az 1mp-et változóba tenni ?
Van valakinek ilyen programrészlete ?
Következő: »»   14 / 18
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem