Timer probléma

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Ha esetleg Túlcsordulásra programoznád Tim0-ást?
On Ovf0 Led
:?:
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

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

Hali!
itt valami nagyon el van qqq.a.
Kipróbáltam, nem megy a programod (DIP8 ATtiny13), sőőőttt, amint átállítom a belső órajel osztót (kikapcs a 8-as osztás), ki is zárom magam a chipből.
már a másodikat nyírom ki...
Avatar
kefeur
Tranzisztorgyógyász
Hozzászólások: 187
Csatlakozott: 2008. február 17. vasárnap, 7:00

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

Nem tudom miért de a start-stop timer x utasítást nem szabad használni.
A nélkül működik a program
Winnerbt azzal elvileg nem zárhatod magad ki a chipből , hacsak nem túl gyors a géped.
Próbáld meg az options programmer fülön a port delay értéket mondjuk 100 on.
Kissebb chip órajelnél ez kell!
Kefeur
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

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

Szia!
Igen rémlett a 13-asnál a start/stop gond, de gondoltam kipróbálom. Hogy most mitől vacakol a cucc, azt nem tudom. Viszont kipróbáltam csak egy portbillegtetést és az sem megy, pedig a program visszaolvasva o.k.
Ami furi, hogy jópár marék 13-ast elhasználtam már gond nélkül...asszem napfolttevékenység lehet az oka. Na, az a lényeg, hogy megoldódott a gondod, én meg elleszek ezzel egy darabig :)
JAni
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

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

Na, ezért rémlett:
"ATTiny13 frissítése Timer0 használatához " az újabb verzióban.
Hát sikerült :)
Nálam is meg van a gond, rá kellett döbbennem, hogy a uC
árammal megy, miután kapott tápot 100%-al megnőtt a teljesítménye :)
JAni
Avatar
Gogo
Újonc
Újonc
Hozzászólások: 11
Csatlakozott: 2008. augusztus 5. kedd, 6:00

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

Sziasztok!
Két kérdésem lenne:
Timer0 segítségével lehet impulzusszélességet mérni?( Felfutó él indít, lefutó megállít, kiolvas, valami ilyesmire gondoltam.)
Wait uasítás közben a timer0 tovább számol, vagy az is áll?
Utólag is mindenkinek boldog ünnepeket!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

wait alatt a timer jár, és ha leketyeg, akkor az intre is elugrik....

Nézd meg a versenynél (tavalyi) a airgun sebességmérőt.
Avatar
kefeur
Tranzisztorgyógyász
Hozzászólások: 187
Csatlakozott: 2008. február 17. vasárnap, 7:00

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

Sziasztok .
Akadt egy kis gondom .
Nem tudom épp a megfelelő helyre írom e, hisz ez segítség kérés lenne.

Beállitottam timer 1-et kb. 1 sec időre,
jelzőbit bebillen.
Jelzőbitet figyelem , ha az 1 akkor számlálókat növelek.
Ebből lenne több is .
De viszont már az első tesztnél gond van . :oops:
Nem minden esetben növekszik a számláló !
Tesztelés : 1 led a timer ciklusban(most van rá idő)
1 led a számláló pl: 4-es értékére vált .
Sajnos ez nem igaz.
A timer-é szépen váltogat , viszont a számláló-é öszze vissza .
Általában 8 ,14 ,9,6-ik ra 4 helyett.

Valamit elnéztem ismét .

Tudnátok segíteni ?


8O
akód :

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

$regfile = "attiny2313.dat"
'$regfile = "m8def.dat"
$crystal = 8000000
'$baud = 96000

Enable Interrupts

Config Timer1 = Timer , Prescale = 256



Config Portb = Input
Config Portd = Output
Config Porta.0 = Output
Config Porta.1 = Output

 Portb = 255

Dim A As Word                                               '
Dim B As Bit
Dim B1 As Bit
Dim B2 As Bit
Dim B3 As Bit                                               '
Dim C As Byte                                               '
Dim D As Word                                               '                                                                     '
Dim E As Word
                                               '
Dim F As Bit                                                '
Dim G As Bit                                                '
Dim H As Bit                                                '
Dim I As Bit

Dim Bekesl_ido As Byte                                      'időzítések

                                                '
Dim Q As Bit
Dim T As Bit
Dim Elesit As Bit
Dim Eles As Bit
Dim Riaszt As Bit
Dim Bekesl As Bit

A = 0
B = 0
C = 0

Tamper Alias Pinb.0
Magnes Alias Pinb.1
Be1 Alias Pinb.2
Be2 Alias Pinb.3
Be3 Alias Pinb.4
Gomb1 Alias Pinb.5
Gomb2 Alias Pinb.6
Telefon Alias Pinb.7


Memled Alias Portd.0
Elesled Alias Portd.1
Be1led Alias Portd.2
Be2led Alias Portd.3
Be3led Alias Portd.4
Szirena Alias Portd.6

Bekesl_ido = 4

'***********/*********
Timer1 = 31250

Enable Timer1

Start Timer1

On Timer1 Ido
'*****************

Foprog:
'*****************///**********

Do


 If T = 1 Then  C = C + 1

 If C = Bekesl_ido Then
  Toggle Be1led

  C = 0
 End If



 T = 0                                                      'timer jelzőbit viszzállitása

Loop

'*********************
Ido:

Stop Timer1
Timer1 = 31250
                                              ' kb 1 sec
Toggle Porta.0
T = 1
Start Timer1

Return

'******************
Ez csak kiemelés a kódból.
Jelenleg ez van lefordítva .
Csak épp nem jó.
Kefeur
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Csak akkor nullázd T-t ha már lekezelted!

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

Do 

 If T = 1 Then  
C = C + 1 
		T = 0                                                      'timer jelzőbit visszállitása 
	End if
 If C = Bekesl_ido Then 
  		Toggle Be1led 
 		 C = 0 
 	End If 

Loop
De így még jobb lenne:

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

Do 

 If C >= Bekesl_ido Then 
  Toggle Be1led 
  C = 0 
 End If 

Loop 

'********************* 
Ido: 

Stop Timer1 
Timer1 = 31250 
                                              ' kb 1 sec 
Start Timer1 

Toggle Porta.0 
C = C + 1

Return
8)
A hozzászólást 1 alkalommal szerkesztették, utoljára kapu48 2010. február 19. péntek, 23:26-kor.
Avatar
herc1234
Bitfaragó
Hozzászólások: 459
Csatlakozott: 2007. február 9. péntek, 7:00

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

Pontosan ahogy Kapu48 írja!
Csak az nem írja hogy miért.
Ha a timer pl a az vizsgálat után csordul akkor az a T=0 sorra
fog visszatérni.Tehát a vizsgálat eljárása belsejébe érdemes
a jelződet nullázni.
Ja és Start Stop felesleges a Timer Subon belül mert olyankor
felfüggesztődik magától.(Ökölszabály megszakítás közben nincs megszakítás.)Főleg ha a végére teszed a timer ujratöltő utasítást.
Viszont ha vizsgálat igaz (tehát volt megszakítás) érdemes
megállítani a timert míg a feltételen belül vagy mert onnan ki tud ugrani
ami nem várt flagkezelést ill. számításokat fog eredményezni.
Avatar
kefeur
Tranzisztorgyógyász
Hozzászólások: 187
Csatlakozott: 2008. február 17. vasárnap, 7:00

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

Igen.
Közben rájöttem én is .
Fától az erdőt esete 8O
Az első megoldás jó.
A másodikkal az a baj hogy, feltételekhez kötött hogy mejk számlálót kell növelni .
Az már tényleg nem való (Timer) megszakításba.
Köszönöm a segítőkészséget !
:)
Kefeur
Avatar
Theophrast
SzínkódFestő
Hozzászólások: 78
Csatlakozott: 2011. július 17. vasárnap, 6:00

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

Szép estét!

Kisebb problémám akadt ma a timerrrel, már kb 3 órája ücsörgök felette :?
Nem akar onnan indulni amire beállitottam és az intben sem akar arra állni amire én szeretném.
Hol lehet a hiba?

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

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

Dim Szamlalo As Byte

Enable Interrupts
Config Timer1 = Timer , Prescale = 1024
On Ovf1 Megszakitas
Timer1 = 64560

Do
Print Timer1
Waitms 200
Loop




Megszakitas:
Timer1 = 64560
Szamlalo = Szamlalo + 1
Return

Ha valaki felhomályositana, hogy hol rontottam el azt megköszönném :P
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

Enable timer1
Start timer1

hiányzik....
Avatar
Theophrast
SzínkódFestő
Hozzászólások: 78
Csatlakozott: 2011. július 17. vasárnap, 6:00

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

komolyan nem hiszem el 8O

hiába, itt látszik hogy keveset aludtam a héten...
Lehet holnap kellene innen folytatni...

Köszönöm szépen a segitséget :P
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

Szívesen.....
Kispárnaikonom nincs:(
Válasz küldése