LED villogtató

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
herc1234
Bitfaragó
Hozzászólások: 459
Csatlakozott: 2007. február 9. péntek, 7:00
Tartózkodási hely: Törökbálint

HozzászólásSzerző: herc1234 » 2008. március 9. vasárnap, 10:07

fenti progi nem ragad be pedig low level :D
bár csak azért nem mert a két input (pind.6 és pind.5)
nincs konfigurálva
meg még egy érdeksség:
csináltam egy olyan STK200-at ami benne van egy SUBD 25 müanyag
burkolatában (sajnos kétoldalasra sikerült) KANDA 10 kiosztással
saját belső táppal ami kimegy a KANDA-n egy kapcsolóval két led-el
(power on és program led) meg egy DIP kapcsolóval kapcsolható
RESET áramkörrel (ezt megint csak azért mert az áramkörön ismét el
fogom használni a reset lábat i/o-nak)
Ugyebár a PC-felől a proci kap resetet mindaddig amíg rá van kötve a
programozóra tehát fut a program reset áramkör nélkül is.....
Önmagában végtelen ideig is és ha az ember megnyomja a gombot akkor
átvált egy másik futófényre ez jól is müködik egészen a 11. megszakítás
lekelezéséig mikor resetel az ic és ujraindul.
(már átirtam a rutinokat változókat szinte az egész progit mire rájöttem
hogy be kép billenteni a reset 10K ellenállást de aztán amint ezt megtettem müködött minden rendben a 11. megszakítás után is)
mindig pontosan a 11. megszakítás után resetelt...pedig ha a pc felöli
jel ami a resetet kezeli nem lebeghet ilyen "pontosan"

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

HozzászólásSzerző: Robert » 2008. március 9. vasárnap, 10:36

A PC rántja a RESET lábat programozáskor ill programozás alatt. A végén elengedi. DE: érdemes ide, vagy a panelra a felhúzóellenállást beépíteni.

Én valami kondi feltöltődésre tippelek... A Reset lábon alapban egy belső ~82k-s ellenállás van. Ott arról képes parazita módon megtáplálni a programozóbufferIC-t...

Avatar
Thommas
DrótVégénSzéndarab
Hozzászólások: 28
Csatlakozott: 2009. március 21. szombat, 6:00
Tartózkodási hely: Pilis

HozzászólásSzerző: Thommas » 2010. szeptember 16. csütörtök, 15:52

sziasztok
Építettem egy panelt ami majd egy időzítőt működtetne de nem akart elindulni ezért dobtam rá egy ledvillogtató programot hogy ellenőrizzem működik-e.
A panelon helyet kapott egy JCO 12mHzes oscillátor.
A ledvillogtató a következő:

$regfile = "m8def.dat"
$crystal = 12000000

Config Pinc.1 = Output

Do

Portc.1 = 1
Waitms 1000
Portc.1 = 0
Waitms 1000

Loop '

End

Chip beállítva és communicationnal a 12000000 hz szintén.
Amig ezt meg nem tettem el se indult.
Most hogy elindult viszont valamiért egy másodperc helyett kb 13 másodpercenként villan fel és alszik el.
Milyen beállítást mulasztottam el?
Esetleg a fuse biteknél valami?
A hozzászólást 1 alkalommal szerkesztették, utoljára Thommas 2010. szeptember 16. csütörtök, 16:53-kor.

Avatar
herc1234
Bitfaragó
Hozzászólások: 459
Csatlakozott: 2007. február 9. péntek, 7:00
Tartózkodási hely: Törökbálint

HozzászólásSzerző: herc1234 » 2010. szeptember 16. csütörtök, 16:46

Reset áramkör rendeb van?
watchdog timer?

Avatar
Thommas
DrótVégénSzéndarab
Hozzászólások: 28
Csatlakozott: 2009. március 21. szombat, 6:00
Tartózkodási hely: Pilis

HozzászólásSzerző: Thommas » 2010. szeptember 16. csütörtök, 16:52

reset +5v-ra húzva, watchdogon mit és hogyan ellenőrizzek?

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

HozzászólásSzerző: Robert » 2010. szeptember 16. csütörtök, 20:06

A belső 1 mhz-ről jár a chiped....

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

HozzászólásSzerző: kapu48 » 2010. szeptember 17. péntek, 10:29

Vagy nem kapcsoltad le a 8-as órajel osztást?

8)

Avatar
Thommas
DrótVégénSzéndarab
Hozzászólások: 28
Csatlakozott: 2009. március 21. szombat, 6:00
Tartózkodási hely: Pilis

HozzászólásSzerző: Thommas » 2010. szeptember 17. péntek, 14:47

Mit és hol ellenőrizzek?
Lock and fuse fülön a KLA987 sorban kipróbáltam az összes beállítást ami ext 8-12mHz közé sett de vagy ugyanez vagy el se indul a proci.
Bascom verziószáma: 1.11.9.8
Plz valaki segítsen, amatőr vagyok és nagyon megfogott a dolog.

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

HozzászólásSzerző: Robert » 2010. szeptember 17. péntek, 15:08

DivClk8 Enable/Disable

Avatar
Kotesz
Tranzisztorgyógyász
Hozzászólások: 171
Csatlakozott: 2009. szeptember 24. csütörtök, 6:00

HozzászólásSzerző: Kotesz » 2010. szeptember 19. vasárnap, 15:46

Szeretnék egy 5 ledből álló villotatót úgy megcsinálni hogy , egy gomb megnyomására léptesse a ledeket sorba.Sima kapcsolóként már jól működik a gomb.

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

$regfile = "m8def.dat"                                      'proci: AtMega8
$crystal = 4000000                                          'belső órajel

Config Portc.5 = Output
Config Portc.4 = Output
Config Portc.3 = Output
Config Portc.2 = Output
Config Portc.1 = Output                                     'kimenet: LED
Config Portc.0 = Input                                      'bemenet: Nyomógomb
Reset Portc.1
Reset Portc.2
Reset Portc.3
Reset Portc.4
Reset Portc.5
Portc.0 = 1                                                 'belső felhúzó ellenállás bekapcsol


Dim A As Byte

A = 0

Do                                                          'főprogram
   Reset A                                                  'feltétel
   If Pinc.0 = 0 Then

    Portc.1 = 1
    A = 1                                                   ' állapotjelzés átváltása
    Waitms 500
    Bitwait Pinc.0 , Set                                    ' vár gombelengedésig

   End If


   If Pinc.0 = 0 And A = 1 Then

    Reset Portc.1
    Set Portc.2
    A = A + 1                                               ' állapotjelzés átváltása
    Waitms 500
    Bitwait Pinc.0 , Set                                    ' vár gombelengedésig

stb....

   End If                                                   'feltétel vége




   Loop                                                        'főprogram vége

End                                                         'end program


Hogyan tudnám elérni hogy az 'A'mindig lépjen egyet gomb nyomásra és ennek az értékének megfelelően gyulladjanak ki a ledek?

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

HozzászólásSzerző: Robert » 2010. szeptember 19. vasárnap, 15:53

Prellegést hogy véded ki?

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

If gombnyomás =1 tehne számláló=számláló + 1
if szamlalo >5 then szamlalo=0
waitms 10 'prell miatt!
portled=0
select case szamlalo
   case 0: portled.0=1
   case 1: portled.1=1
   case 2: portled.2=1
   case 3: portled.3=1
   case 4: portled.4=1
end select

valami ilyesmi....

Avatar
Kotesz
Tranzisztorgyógyász
Hozzászólások: 171
Csatlakozott: 2009. szeptember 24. csütörtök, 6:00

HozzászólásSzerző: Kotesz » 2010. szeptember 19. vasárnap, 16:06

Igy próbálkozom de valami syntaktikai hiba van

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

$regfile = "m8def.dat"                                      'proci: AtMega8
$crystal = 4000000                                          'belső órajel

Config Portc.5 = Output
Config Portc.4 = Output
Config Portc.3 = Output
Config Portc.2 = Output
Config Portc.1 = Output                                     'kimenet: LED
Config Portc.0 = Input                                      'bemenet: Nyomógomb
Reset Portc.1
Reset Portc.2
Reset Portc.3
Reset Portc.4
Reset Portc.5
Portc.0 = 1                                                 'belső felhúzó ellenállás bekapcsol


Dim A As Byte

A = 0

Do                                                          'főprogram


                                                    'feltétel
   If Pinc.0 = 0 Then A = A + 1
   Waitms 50
   If A > 5 Then A = 0                                      ' állapotjelzés átváltása

   End If




Select Case A
   Case 0 : Portc.1 = 1
   Case 1 : Portc.2 = 1
   Case 2 : Portc.3 = 1
   Case 3 : Portc.4 = 1
   Case 4 : Portc.5 = 1
End Select


   Loop                                                     'főprogram vége

End                                                         'end program

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

HozzászólásSzerző: Robert » 2010. szeptember 19. vasárnap, 16:16

szintaktikai hiba uzenetre kattints ra. Odaugrik a sorra :)
do-loopban nem nullázod a nem aktív lábat. Így csak 1x mész végig és világít...
A hozzászólást 1 alkalommal szerkesztették, utoljára Robert 2010. szeptember 19. vasárnap, 16:32-kor.

Avatar
Kotesz
Tranzisztorgyógyász
Hozzászólások: 171
Csatlakozott: 2009. szeptember 24. csütörtök, 6:00

HozzászólásSzerző: Kotesz » 2010. szeptember 19. vasárnap, 16:19

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

                                                    'feltétel
   If Pinc.0 = 0 Then A = A + 1
   Waitms 50
   If A > 5 Then A = 0                                      ' állapotjelzés átváltása

   End If


Itt van valami gáz!

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

HozzászólásSzerző: kapu48 » 2010. szeptember 19. vasárnap, 16:30

Ha az : If Pinc.0 = 0 Then A = A + 1
Then utasítással egy sorban van további utasítás akkor csak 1 soros a Then ág és nem kel „End if!

Helyesen így jó:

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

   If Pinc.0 = 0 Then   ’Tőbb soros Then ág az első szabad End If-ig
    A = A + 1
    Waitms 50
    If A > 5 Then A = 0                                     ' állapotjelzés átváltása
   End If  ’Eddig!
8)


Vissza: “Bascom-AVR nyelvű programozás (AVR programozásának lehetőségei)”

Ki van itt

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