Bascom 2.0.5.0 regisztrált _és_ DEMO

Bascom, Wiring és Arduino frissítések, hátterei esetleges hibái
Avatar
Robert
Elektronbűvölő
Hozzászólások: 9906
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Bascom 2.0.5.0 regisztrált _és_ DEMO

HozzászólásSzerző: Robert » 2011. április 14. csütörtök, 17:57

Megjelent. a DEMO verzió is frissült!

Változások:

2.0.5.0
- simulator tooltip will show alias and constants too. (if compiled with 2050)
- xmega buffered input and output were not using the buffers.
- tcpip chip reset time extended to 200 ms.
- m164P,324P and 644P did not have uart2=5 in the ini file, so UBRRHI was not set.
- changed help about LIBUSB. Most important : new libusb supports all windows versions including Win7-64 !!!
- str2digits added, converts a string into an array of numeric digits
s="12345" : str2digits s, ar(1) : ar(1) contains number of digits, ar(2) = 5, ar(3)=4, etc.
- XV-GDM128X64 Graphic Display Library for 128 * 64 from avr-praxis added.
See http://mikrocontroller-praxis.de/de/Dis ... 4-RGB.html
- Arduino bootloader support added. Select 57600 baud and the com port. flash/eeprom is supported, but arduino does not support fuse/lock bytes.
Tested with arduino mega and arduino nano v3.
- STK600 now also works in ISP mode for non xmega/pdi chips.
also, the clock frequency was not calculated properly for the stk600.
- there was no error when assigning too big string constants to strings in subs/function.
if you do not specify the size of a parameter, you still will not get an error.
declare sub test(s as string * 10) : here the length is defined. this is the maximum allowed length.
since you can call a sub from multiple places/subs, you need to define the maximum.
- TIMER4, TIMER5 supported added to the LOAD statement.
- m1280/2560/644p,m2561,m1281 did not use the proper register when using START TIMER.
- xmega 256xxx chips bootloader space was not addressed with the proper page loaded in rampz.
- dword type added. a dword is a double word and uses 4 bytes just as a long.
just as like a word, it can not hold/show negative numbers. Notice that this is a first release, some function/statements might not support it.
Inform support if there is a problem.
- at90pwm216 dat file added.
- when a string is passed with byval, a string with the required length is passed.
So when passing "abc" it will pass a string with length of 3.
When you alter the string, like adding spaces, you will overwrite the length.
There is no way to know how long it can be/become.
To override this, you may specify the length of the string in the declaration.
normally you declare only the string type : dim test(byval s as string)
But an optional length will set the maximum size.
dim test(byval s as string * 20) will set the string to a length of 20.
- local variables may now have the same name as global variables.
- simulator changed so it requires less cpu time when pauzed
- charpos() used with an offset of 0 did not work. also new option/parameter added.
- quote() did append to the end of string.
- programming xmega 256 chips, programmed the full memory, not the project size.
- checksumXor() added
- simulator support added for config base=0
- xmega printbin did not support printing constants.
- xmega config print/2/3/4 for RS485 support added.
- if useing WR pin with LCD in pin mode, the lib lcd4busy_anypin will be used. This lib is based on Luciano's LUC_lcd4busy lib.
the lib will be automatically used when using the WR pin, so there is no need to include it.
Example : Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0 , Wr = Portb.6
- sort added for byte,integer and word arrays
- modded rnd() so it returns a larger number(a word)
- $crypt option added to use crypted code, this is an add on, not enabled by default.
- m8515 prescale value for 64 and up was incorrect.
- tiny48/88, timer0 configured non existing register. also removed all options that are not present in timer0.
- tiny24/45/85 Config timer0 = timer , Prescale = 1 , Compare A = Toggle , Clear Timer = 1 would set up portb.3 instead of portb.0
- simulator supports xmega interrupts.
- $notransform opion added. while the compiler by default changes code depending on the chip, you might want to get an error.
When you set $notransform ON, the compiler will not transform IN into an LDS when needed. You will get an error. Intended for asm programmers.
$notransform On
cbi portL,1
$notransform Off
- avr-dos changed to xmega.
- fm24c64_256.lib added for replacing eeprom with ramtron eeprom.
- glcdEADOGM128x6 , rotate option added by MWS to rotate screen by 180 degrees. use CONFIG parameter ROTATE=180
- glcdRA6963.lib added for RA6963 chip which replaces the T6963C
- AVR910/MYAVR MK2 programmer, blockmode support added for quicker programming. Also timeout added to options.
- $bigstring gave a problem with big dimensioned strings because of the stack frame correction
- improved stack clean up code, depending on the size different code will be called eliminating the loading of R25 in most cases
- config BASE will create _BASE constant. Also changed compiler and a number of libs to use the proper base. Code using elemtn (1) was replaced by (_BASE)
- fixed a bug in glcdEADOGM128x6.lib where big non-TT fonts were not displayed correct.

Avatar
winnerbt
Chipfüstölő
Hozzászólások: 884
Csatlakozott: 2007. március 25. vasárnap, 6:00
Tartózkodási hely: Kecskemét

Másnál is bugzik?

HozzászólásSzerző: winnerbt » 2011. április 18. hétfő, 19:23

Sziasztok!
Egy ismerős írta (cenzúráztam, mert sokat bajlódott vele):
--------------------------
Most futottam bele ebbe a hibába.
Ha az interrupt rutinban van I2C kezeles és
a főprogramban karakteres LCD-t is használsz,
akkor elbaltázza az LCD kezelést és mindenféle
szeméttel rakja tele a kijelzőt.

De ha az R12 és az R13 regisztert elmented, akkor
minden ok. :-)
.......Példa:


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

Int_Timer0:
  Timer0 = 178 ' 100Hz - es megszakitashoz
  '**********************************************************
  'Az LCD teritést elbaltázza ha az interrupt rutinban
  'van I2C kezeles. Ezert el kell menteni a ket regisztert !!
  PUSH r12
  PUSH r13
  '**********************************************************
  If IO_Select = 0 Then
     In_port0 = I2C_In ( PCF0 )
     Incr IO_Select
  End If
  If IO_Select = 1 Then
     In_port1 = I2C_In ( PCF1 )
     Incr IO_Select
  End If
  If IO_Select = 2 Then
     In_port2 = I2C_In ( PCF2 )
     IO_Select = 0
  End If
  '**********************************************************
  'Az LCD teritést elrontja ha az interrupt rutinban
  'van I2C kezeles. Ezert el kell menteni a ket regisztert !!
  pop r13
  pop r12
  '**********************************************************


-------------------------
Kipróbáltam és a legújabb BASCOM-ban is hibás
az LCD kezelés ha a timer interrupt-ban I2C kezelés van. :-)

Másnál ilyen tapasztalat?
JAni

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

HozzászólásSzerző: Robert » 2011. április 19. kedd, 6:50

Nem a "szokásos" Single/double kezelési probléma?
Ott is plusz két regisztert kell menteni....

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

HozzászólásSzerző: Robert » 2011. április 19. kedd, 6:59


Avatar
winnerbt
Chipfüstölő
Hozzászólások: 884
Csatlakozott: 2007. március 25. vasárnap, 6:00
Tartózkodási hely: Kecskemét

HozzászólásSzerző: winnerbt » 2011. április 19. kedd, 9:42

A teljes környezetet én nem ismerem, de ettől a két push-tól
rendbejött, gondolom I2C portbővítő olvasásakor nem használ single/double-t, de rákérdezek.
A cimbora eléggé otthon van a Bascomban, remélem, nem csinál belőlem csacsit. :)
JAni

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

HozzászólásSzerző: Robert » 2011. április 19. kedd, 10:36

Lehet, hogy az ördög alvóka miatt a teljes regisztertár és SREG tartalom mentés javasolt minden rutinban ?

Popall / pushall sem ment mindent:(. Csak a főként használtakat....


A mcs.lib-et kellene átlesni, hogy van e benne hibás hivatkozás.... (csak rákerestem az r12 szövegre :) )

Avatar
winnerbt
Chipfüstölő
Hozzászólások: 884
Csatlakozott: 2007. március 25. vasárnap, 6:00
Tartózkodási hely: Kecskemét

LCD bug?

HozzászólásSzerző: winnerbt » 2011. április 29. péntek, 15:18

Hihetetlen bonyolult program:

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

Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Portc.7 , Rs = Portc.6
Config Lcd = 16 * 2
Cls
Lcd "1.        2.  "
End


Eredmény a szimulátorban és a való életben is:
1.2.
(a köztes space-k eltünnek)
Csak nálam csinálja?)
2.0.5.0. ver.
JAni

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

HozzászólásSzerző: Robert » 2011. április 29. péntek, 16:19

Kipróbálva, M168 esetén.
Ugyanez.
Az 1. zavarja meg, legalábbis a pont.
Ha 1 vagy bármi más van (pont nélkül), akkor teljesen jó...

Ha stringként adom át (változó), ugyanezt csinálja....

Avatar
winnerbt
Chipfüstölő
Hozzászólások: 884
Csatlakozott: 2007. március 25. vasárnap, 6:00
Tartózkodási hely: Kecskemét

HozzászólásSzerző: winnerbt » 2011. április 29. péntek, 16:25

Köszi a próbát!
HA "1.",CHR(32),.........van,
akkor jól eszi meg.
Kiadták a fejlesztést kínaiaknak, oszt
zatyulnak össze-vissza mindent?
JAni
17:25

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

HozzászólásSzerző: Robert » 2011. április 29. péntek, 16:39

Ha így írod, szintén OK:

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

Lcd "1." ; "      2. "



Szerintem behoztak 2 dolgot, ami bejátszhat:
- lcd library csere (a Busybit kezelés bekerült)
- A dword változó használata

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

HozzászólásSzerző: Robert » 2011. április 30. szombat, 23:11

Tényleg hibás a kód. Patch-ként készül a javítás....
(LCD és . kezelése)

Avatar
mester1025
Biztosítékgyilkos
Hozzászólások: 52
Csatlakozott: 2011. május 24. kedd, 6:00
Tartózkodási hely: Zalaegerszeg

HozzászólásSzerző: mester1025 » 2011. július 2. szombat, 8:47

sziasztok
bascom 2.0.5.0 -ás demo verziót használom programozáshoz, a kérdésem az lenne, hogy a programozásnál a manual program-ot miért nem tudom kiválasztani?( nem csinál semmit) , igy biztositékbiteket sem tudok változtatni :S

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

HozzászólásSzerző: kapu48 » 2011. július 2. szombat, 9:37

Előbb az Options > Programmer > Programmer lenyilóban , válassz programozót.
Nálam (STK500 native drive)
COMx
Clock: 125000

Előtte a PC-nek kel az FTDI Driver.

EROR!
Nálatok is van ez a szerkesztő hiba? Demo 2.0.5.0 +
Ha csoportos megjegyzésből kiveszek valamit, akkor marad a zöld színe a szövegnek?
Kezdet:
’(
Data 30 , 16 , 1 , 1 , 1
Data 30 , 32 , 1 , 16 , 1
’)
Változtatom:

Data 30 , 16 , 1 , 1 , 1
Data 30 , 32 , 1 , 16 , 1

Nem színezi át!???

:roll:

Avatar
mester1025
Biztosítékgyilkos
Hozzászólások: 52
Csatlakozott: 2011. május 24. kedd, 6:00
Tartózkodási hely: Zalaegerszeg

HozzászólásSzerző: mester1025 » 2011. július 2. szombat, 10:56

köszi most már jó..rossz volt kiválasztva

Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1023
Csatlakozott: 2009. február 28. szombat, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: SanyiSay » 2011. július 2. szombat, 10:57

......


Vissza: “Bascom/Arduino/Wiring frissítések”

Ki van itt

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