www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Bascom Attiny13 SPROŽILEC
Pojdi na stran 1, 2  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
JURCMAN
Neznanec
Neznanec



Pridružen-a: Ned 21 Avg 2011 22:26
Prispevkov: 8
Aktiv.: 0.05
Kraj: kamnik

PrispevekObjavljeno: Ned Jan 13, 2019 9:44 pm    Naslov sporočila:  Bascom Attiny13 SPROŽILEC Odgovori s citatom

Pozdravljeni
Prosil bi vas lepo prosim za pomoč
Že nekaj dni Brick wall poskušam napisati program v Bascomu za Attiny13, ki bi ob pritisku tipke. Ki bi bila vezana na PB4 poslal pol sekundni signal na PB0. Ki bi ga nato vezal na lm272m. Kateri bi vklapljal pnevmatski ventil.
Program mora poslati samo en signal ob pritisku tipke ne glede na dolžino časa pritisnjene tipke.

lp.Pavlic
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
frenki
Moderator
Moderator



Pridružen-a: Ned 23 Feb 2003 21:26
Prispevkov: 6553
Aktiv.: 29.43
Kraj: Ljubljana (JN76GB)

PrispevekObjavljeno: Ned Jan 13, 2019 11:01 pm    Naslov sporočila:   Odgovori s citatom

Je problem čas pritiska tipke, ali njeno odskakovanje? Nič nisi napisal, kje se ti pravzaprav zatakne. Debounce bi moral rešit problem pritiska tipke ... če je problem to.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
rudiP
Član
Član



Pridružen-a: Tor 07 Avg 2007 15:30
Prispevkov: 1234
Aktiv.: 6.07
Kraj: KOPER

PrispevekObjavljeno: Pon Jan 14, 2019 7:14 am    Naslov sporočila:   Odgovori s citatom

Koda:
'*******************************************************************************
$regfile = "m168def.dat "
$hwstack = 64
$swstack = 64
$framesize = 64
$crystal = 8000000
'-------------------------------------------------------------------------------
In_1 Alias Pinb.4                                           'pull up upor je potrenem proženje proti masi
Config In_1 = Input
Out_1 Alias Portb.0
Config Out_1 = Output

 '------------------------- 1ms --- 8 Mhz --------------------------------------
Const Timer0reload = 57
Config Timer0 = Timer , Prescale = 256
Load Timer0 , 100
On Ovf0 Timer0_isr
Enable Ovf0
Start Timer0
'-------------------------------------------------------------------------------
Dim S1_1ms As Word
Dim D_impulz As Word

'-------------------------------------------------------------------------------
Do
     If In_1 = 0 And D_impulz = 0 Then
        D_impulz = 1000                                     '
        Set Out_1
     End If

Loop

End

'******************* TIMER1 INTERRUPT SERVICE RUTINE ***************************
Timer0_isr:
  Load Timer0 , Timer0reload
  Incr S1_1ms

  If D_impulz > 0 Then Decr D_impulz
  If D_impulz = 500 Then Reset Out_1
  'od 500ms so 0 ms je še malo pavze da nebi takoj detektiral tipke

Return
'******************************************************************************


spremeni def za tiny procesor !

_________________
Lep pozdrav iz Kopra Rudi
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
rudiP
Član
Član



Pridružen-a: Tor 07 Avg 2007 15:30
Prispevkov: 1234
Aktiv.: 6.07
Kraj: KOPER

PrispevekObjavljeno: Pon Jan 14, 2019 8:12 am    Naslov sporočila:   Odgovori s citatom

manjka -> Enable Interrupts
_________________
Lep pozdrav iz Kopra Rudi
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
JURCMAN
Neznanec
Neznanec



Pridružen-a: Ned 21 Avg 2011 22:26
Prispevkov: 8
Aktiv.: 0.05
Kraj: kamnik

PrispevekObjavljeno: Pon Jan 14, 2019 11:27 am    Naslov sporočila:   Odgovori s citatom

Hvala za tako hitri odgovor Very Happy
Program sem stestiral na MikroPinu+ z Attiny2312 kot mi odgovarja na razvojni ploscici in se ledica na izhodu sama vklapla in izklaplja v intervalih?
Koda:

$crystal = 8000000
$regfile = "ATtiny2313.dat"
$hwstack = 32
$swstack = 8
$framesize = 32

'-------------------------------------------------------------------------------
In_1 Alias Pind.2                                           'pull up upor je potrenem proženje proti masi
Config In_1 = Input
Out_1 Alias Portb.3
Config Out_1 = Output
Enable Interrupts

 '------------------------- 1ms --- 8 Mhz --------------------------------------
Const Timer0reload = 57
Config Timer0 = Timer , Prescale = 256
Load Timer0 , 100
On Ovf0 Timer0_isr
Enable Ovf0
Start Timer0
'-------------------------------------------------------------------------------
Dim S1_1ms As Word
Dim D_impulz As Word

'-------------------------------------------------------------------------------
Do
     If In_1 = 0 And D_impulz = 0 Then
        D_impulz = 1000                                     '
        Set Out_1
     End If

Loop

End

'******************* TIMER1 INTERRUPT SERVICE RUTINE ***************************
Timer0_isr:
  Load Timer0 , Timer0reload
  Incr S1_1ms

  If D_impulz > 0 Then Decr D_impulz
  If D_impulz = 500 Then Reset Out_1
  'od 500ms so 0 ms je še malo pavze da nebi takoj detektiral tipke

Return
'******************************************************************************
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
rudiP
Član
Član



Pridružen-a: Tor 07 Avg 2007 15:30
Prispevkov: 1234
Aktiv.: 6.07
Kraj: KOPER

PrispevekObjavljeno: Pon Jan 14, 2019 11:35 am    Naslov sporočila:   Odgovori s citatom

Pomeri stanje na vhodu tipke. Izgleda, da je stalno na "0".

Si dal pull up upor na + 5v ?

_________________
Lep pozdrav iz Kopra Rudi
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
JURCMAN
Neznanec
Neznanec



Pridružen-a: Ned 21 Avg 2011 22:26
Prispevkov: 8
Aktiv.: 0.05
Kraj: kamnik

PrispevekObjavljeno: Pon Jan 14, 2019 11:49 am    Naslov sporočila:   Odgovori s citatom

pull up upor imam na 0
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
rudiP
Član
Član



Pridružen-a: Tor 07 Avg 2007 15:30
Prispevkov: 1234
Aktiv.: 6.07
Kraj: KOPER

PrispevekObjavljeno: Pon Jan 14, 2019 11:55 am    Naslov sporočila:   Odgovori s citatom

pull up pomeni - povleci gor !!

na vhod daj upor 10K proti plusu, tipko pa iz vhoda proti masi pa bo delalo.

V glavni zanki imaš If In_1 = 0 And D_impulz = 0 Then in d_impulz =0

Če je vhod na nuli in števec d_impulz =0 ti ponovno postavi izhod in tako se vrti.

Moraš dat pull up upor na +. ko stisneš na tipko gre vhod na nulo-

_________________
Lep pozdrav iz Kopra Rudi
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
JURCMAN
Neznanec
Neznanec



Pridružen-a: Ned 21 Avg 2011 22:26
Prispevkov: 8
Aktiv.: 0.05
Kraj: kamnik

PrispevekObjavljeno: Pon Jan 14, 2019 2:00 pm    Naslov sporočila:   Odgovori s citatom

Hvala Odpravil sem napako. Sedaj moram spremeniti čas izhoda vse skupaj se more odviti zelo hitro. Pozabil sem omeniti da je progam za sprožilec za Airsoft puško.

spremenil sem v programu iz 500 na 100 sedaj zaznav dovol hitro se mi pa zdi da se je čas izhoda podvojil iz 6s na 12s potrebujem pa 500ms

Koda:
Timer0_isr:
  Load Timer0 , Timer0reload
  Incr S1_1ms

  If D_impulz > 0 Then Decr D_impulz
  If D_impulz = 100 Then Reset Out_1
  'od 500ms so 0 ms je še malo pavze da nebi takoj detektiral tipke
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
rudiP
Član
Član



Pridružen-a: Tor 07 Avg 2007 15:30
Prispevkov: 1234
Aktiv.: 6.07
Kraj: KOPER

PrispevekObjavljeno: Pon Jan 14, 2019 2:09 pm    Naslov sporočila:   Odgovori s citatom

Prosim pripni vso kodo !
_________________
Lep pozdrav iz Kopra Rudi
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
JURCMAN
Neznanec
Neznanec



Pridružen-a: Ned 21 Avg 2011 22:26
Prispevkov: 8
Aktiv.: 0.05
Kraj: kamnik

PrispevekObjavljeno: Pon Jan 14, 2019 2:19 pm    Naslov sporočila:   Odgovori s citatom

Koda:
$crystal = 8000000
$regfile = "ATtiny2313.dat"
$hwstack = 32
$swstack = 8
$framesize = 32

'-------------------------------------------------------------------------------
In_1 Alias Pind.2                                           'pull up upor je potrenem proženje proti masi
Config In_1 = Input
Out_1 Alias Portb.3
Config Out_1 = Output
Enable Interrupts

 '------------------------- 1ms --- 8 Mhz --------------------------------------
Const Timer0reload = 57
Config Timer0 = Timer , Prescale = 256
Load Timer0 , 100
On Ovf0 Timer0_isr
Enable Ovf0
Start Timer0
'-------------------------------------------------------------------------------
Dim S1_1ms As Word
Dim D_impulz As Word

'-------------------------------------------------------------------------------
Do
     If In_1 = 0 And D_impulz = 0 Then
        D_impulz = 1000                                     '
        Set Out_1
     End If

Loop

End

'******************* TIMER1 INTERRUPT SERVICE RUTINE ***************************
Timer0_isr:
  Load Timer0 , Timer0reload
  Incr S1_1ms

  If D_impulz > 0 Then Decr D_impulz
  If D_impulz = 100 Then Reset Out_1
  'od 500ms so 0 ms je še malo pavze da nebi takoj detektiral tipke

Return
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
rudiP
Član
Član



Pridružen-a: Tor 07 Avg 2007 15:30
Prispevkov: 1234
Aktiv.: 6.07
Kraj: KOPER

PrispevekObjavljeno: Pon Jan 14, 2019 2:43 pm    Naslov sporočila:   Odgovori s citatom

spremenil sem v programu iz 500 na 100 sedaj zaznav dovol hitro se mi pa zdi da se je čas izhoda podvojil iz 6s na 12s potrebujem pa 500ms

s to spremembo si podaljšal inpulz na 900ms. kje pa imaš sekunde ne vem.

Povej kaj dejansko rabiš.

Na primer pritisnem na tipko, rabim impulz dolžine x milisekund.

tipka ne sme prožit še y ms.

_________________
Lep pozdrav iz Kopra Rudi
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
JURCMAN
Neznanec
Neznanec



Pridružen-a: Ned 21 Avg 2011 22:26
Prispevkov: 8
Aktiv.: 0.05
Kraj: kamnik

PrispevekObjavljeno: Pon Jan 14, 2019 3:00 pm    Naslov sporočila:   Odgovori s citatom

Ob pritisku na tipko potrebujem signal dolg 500 mili sekund
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
rudiP
Član
Član



Pridružen-a: Tor 07 Avg 2007 15:30
Prispevkov: 1234
Aktiv.: 6.07
Kraj: KOPER

PrispevekObjavljeno: Pon Jan 14, 2019 3:38 pm    Naslov sporočila:   Odgovori s citatom

D_impulz = 1000 '
1000ms=1 sekunda
Set Out_1 ' začetek impulza

If D_impulz = 500 Then Reset Out_1 ' ko program odšteje do 500 konča impulz


to je točno. Mogoče imaš v fuse bitih odkljukano division/8 ?

_________________
Lep pozdrav iz Kopra Rudi
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
JURCMAN
Neznanec
Neznanec



Pridružen-a: Ned 21 Avg 2011 22:26
Prispevkov: 8
Aktiv.: 0.05
Kraj: kamnik

PrispevekObjavljeno: Pon Jan 14, 2019 9:21 pm    Naslov sporočila:   Odgovori s citatom

Lahko prosim bol natančno opišete, kje najdem nastavitve za fuse bite.
Hvala.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran 1, 2  Naslednja
Stran 1 od 2

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 67 dni


Powered by phpBB © 2001, 2005 phpBB Group