ATthiny 15L

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
pajapan
DrótVégénSzéndarab
Hozzászólások: 21
Csatlakozott: 2008. január 3. csütörtök, 7:00

ATthiny 15L

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

Sziasztok !
Segítségetek szeretném kérni!
Az a bajom, hogy ezzel a pici aprósággal szeretnék megvalósítani egy lámpa vezérlését.
2 bemenet, 1 kimenet
de a program elején, amikor beállítom az inputot-outputot, már akkor ezt az üzenetet küldi: Out of sram size
Kitöröltem minden programsort :-) akkor is kiírja...
(Csak a regfile van bent, "$regfile = atthiny15.dat")
Miért?
Köszönettel: Paja
Avatar
pajapan
DrótVégénSzéndarab
Hozzászólások: 21
Csatlakozott: 2008. január 3. csütörtök, 7:00

ATthiny 15L

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

Szia!
Levettem 16-ra és még mindig írja...
Levettem őket HW stack = 8
SW stack = 8
Framesize = 8
Így már rendben ..
Köszönöm a segítséget! Mostmár akkor tudom, hogy mit kell állítani!

Köszi!
Avatar
pajapan
DrótVégénSzéndarab
Hozzászólások: 21
Csatlakozott: 2008. január 3. csütörtök, 7:00

ATthiny 15L

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

Sziasztok!

Roppant kínosnak érzem, de még így nem jártam...
Most hogy már nem ír hibaüzenetet, elfogadja a kódomat, de szembesülnöm kellett azzal, hogy nem lehet deklarálni változót...
Na jó, gondoltam, lemondok a for-next ciklusról. De most akkor a wait utasításnál amit a fordító elfogad, csak a Bascom teszttelője szerint, amikor a "waitms 500" hoz ér, reseteli a pc countert, és kezdi elölről program futását.. Ha kihagyom a a"waitms"-t akkor fut a program.
Kipróbáltam a Proteus ISIS szimulációban is , és ott is problémába ütközik. Ott azt írja ki, hogy hibás címre utal a pc- counter.. Mit lehet tenni? Mit rontok el?
Egyszerű LED villogtatásról van szó.
Ha most nem gépeltem valamit rosszul, akkor így néz ki a program..
A HW stack, Swstack, és fame 8-8-16

config portb.2 = output

do

set portb.2
waitms 500
reset portb.2
waitms 500

loop
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

Belső órajel van.....
Timer használata?:)

On Timer függvénnyel? azaz amikor leketyeg, akkor elugrik és a LED állapotot vált?


A Chipben nincs SRAM!
Hát, ForNext max ASMben megy.....

Így a Timerkezeléssel lehet megoldani, szerintem....
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

tipp:

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

$regfile = "ATtiny15.DAT"
$crystal = 1600000                                          'internal

$tiny
$noramclear
$hwstack = 0
$swstack = 0
$framesize = 0

Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output                                     'kimeneti LEDek

Config Timer0 = Timer , Prescale = 1024

On Timer0 Pulse
Enable Interrupts
Enable Timer0

Do
   nop
Loop

Pulse:
  Toggle Portb.0
Return

End
Ez 6 Hzvel megy (timer); toggle miatt feleződik (3hz).

De lehet asm alaú regiszteres számláló is.... Ezzel is lehet finomítani....
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

Tipp2:

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

$regfile = "ATtiny15.DAT"
$crystal = 1600000                                          'internal

$tiny
$noramclear
$hwstack = 0
$swstack = 0
$framesize = 0

Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output                                     'kimeneti LEDek


'(
You may also specify IRAM. IRAM is the place in memory where the registers are located : absolute address 0 - 31. BASCOM uses most of these addresses, depending on the instructions/options you use. For a $TINY chip it makes sense to use IRAM since there is NO SRAM in most tiny AVR chips (TINY15 for example). You may also use to IRAM to overlay registers in memory.

')
Dim A As Iram Byte
Dim B As Iram Byte

Do
Toggle Portb.0
Waitms 500
Loop

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

$regfile = "ATtiny15.DAT"
$crystal = 1600000                                          'internal

$tiny
$noramclear
$hwstack = 0
$swstack = 0
$framesize = 0

Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output                                     'kimeneti LEDek


'(
You may also specify IRAM. IRAM is the place in memory where the registers are located : absolute address 0 - 31. BASCOM uses most of these addresses, depending on the instructions/options you use. For a $TINY chip it makes sense to use IRAM since there is NO SRAM in most tiny AVR chips (TINY15 for example). You may also use to IRAM to overlay registers in memory.

')
Dim A As Iram Byte

Do
For A = 1 To 64                                             ' 1 sec
   Waitus 15625
Next A
Toggle Portb.0

Loop
Avatar
pajapan
DrótVégénSzéndarab
Hozzászólások: 21
Csatlakozott: 2008. január 3. csütörtök, 7:00

ATthiny 15L

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

Köszönöm a segítséget!
Így már tényleg működik!!!
Ezekkel változtatásokkal, már van for-next is!
Mégegyszer köszi!

Paja
Válasz küldése