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 / 14
(#) 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 /
 
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..
Következő: »»   14 / 14
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu