ATTiny13 kezdő kérdések

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

És ha az A byteként definiálódik?
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 »

Aakkor már nincs hibaüzenet , lefordítódik a progi.
Ezt akkor sem értem miért nem jó a bit?

A másik dolog : ha kicserélem gosub-ra a gomfigyel utáni utasítást akkor meg villog 1db led az első gombnyomás után , és látszólag nem reagál semmire .
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

A gosub az szubrutinhívás, azaz elugrik az adott cimkére, és a return-nál vissza, ahonnan meg volt hívva.

A bit esetén lehetséges, hogy a data sorokban amiket felsorolsz, azokat a fordító Byte-ként értelmezi.... és ugye byte-t belegyömöszkölni a bitbe macerás:).

DATA sorban nem is lehet bit-et tárolni - ahogy olvasgatom a Bascom leírásokat....
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 »

Ez így világossá vált előttem .
Köszike!
Az viszont nem miért ragad a program be a villogásnál?
Nem nyomok gombot csak 1 szer mégis folyamatosan villog a 1 led , de nem halad a datasorban előre .
Ha viszont nyomok gombot nem történik semmi .
A programváltás az működik legalább.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

'Programresz:

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

For P = 0 To 2 'beolvassa és kiírja az adatokat 
Read A 
Waitms 10 
Portb.p = A 'itt kapcsolja be a labon a LEDet
Next P 

Waitms 500 'erre az időre villan fel a led 
'mondjuk ez fél sec nem egy villanás 

For p = 0 To 3 'törli a kimeneteket 
Portb.p = 0 'Itt meg kikapcsolja a LEDet
Next p 
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 »

Na igen .
De viszont ezt csak 1 szer kellene , nem folyamatosan .
Várni kellene a gombnyomást és utána -led villantás.
Valami még nem az igazi .
Addig keresem míg jó nem lessz!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

A Portb.3 nincs 0-ba beragadva?
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 »

Hát ezt elnéztem írtam portb 0-2 ig
aztán töröltem portb0-3 ig
A 3 az már bemenet persze hogy villogott a led !
Mostmár a gombok viszonylag jól működnek , de az adatot mindig csak az elsőt olvassa ki.
Csakazt nem tudom ha kiveszem a figyelési ciklusból a restore-t hogy oldjam meg.
Gondolom e miatt olvashatja mindig csak az első 3-at az adatsorból
Do

If Pinb.4 = 0 Then Strob = Strob + 1 'programválasztás
If Strob > 3 Then Strob = 0
If Pinb.3 = 0 Then Gosub Lep
'ugrik ha van léptető jel
Select Case Strob
Case 0
Restore Data1
Case 1
Restore Data2
Case 2
Restore Data3
Case 3
Restore Data4
End Select
Waitms 10
Loop

Lep:

'végrehajtás

For P = 0 To 2 'beolvassa és kiírja az első 3 adatot
Read A
Waitms 10
Portb.p = A
Next P

Waitms 150 'erre az időre villan fel a led

For X = 0 To 2 'törli a kimeneteket
Portb.x = 0
Next X

Return

Data1:
Data 0 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 0
Data2:
Data 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1
Data3:
Data 0 , 1 , 0 , 1 , 0 , 1 , 0 , 1 , 0
Data4:
Data 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1

A select-et kivehetem a do loop közül működni fog a gomb funkciója?
Avatar
herc1234
Bitfaragó
Hozzászólások: 459
Csatlakozott: 2007. február 9. péntek, 7:00

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

ja igen a read minimum byte..
talán érdemes volna még a return elött setelni a gombport állapotá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 »

Az set... megvan a progi elején , csak az lemaradt a részletből. De köszi s figyelmeztetést.

Hibát ír a fordító , és 1 üres sorra panaszkodik . ERROR:61
Most mi lehet a hiba?

A másik dolog amivel nem bírok :
Van 4 subrutin :lep1 , lep2 ,lep...
Gosub ot hogy küldjem oda ha az 1,2 változó mondjuk S ?
Úgy helyes ha azt írom gosub lep(s) ?
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 »

:D
Azt hiszem megoldottam !
Egész jól működik az alap program , hála a segítségeteknek!
Ha valakit érdekel bemásolhatom a topic-ba .
Köszi mindent!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

Kérés: jöhet :).
Ebből lehet tanulni.....

Hol/merre volt a hiba?
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 »

Teljesen átformáztam a programot .
Valószínűleg egyszerűbben is meg lehetett volna oldani , nekem így sikerűlt .
$regfile = "ATtiny13.dat"
$crystal = 9600000

Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output
Config Portb.3 = Input
Config Portb.4 = Input


Dim A As Byte
Dim P As Byte
Dim X As Byte
Dim S As Byte
Dim B As Byte

Portb.3 = 1
Portb.4 = 1
S = 0

Gosub Olv0

Do 'főprogram

If Pinb.4 = 0 Then Gosub Valaszt 'programválasztás

If Pinb.3 = 0 Then Gosub Lep 'ugrik ha van léptető jel

Waitms 1
Loop

Lep:

If B > 3 Then Gosub Olv0
'végrehajtás
For P = 0 To 2 'beolvassa és kiírja az első 3 adatot
Read A
Waitms 10
Portb.p = A
Next P

Waitms 100 'erre az időre villan fel a led

For X = 0 To 2 'törli a kimeneteket
Portb.x = 0
Next X
B = B + 1
Return

Data1:
Data 0 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 0

Data2:
Data 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1

Data3:
Data 1 , 1 , 0 , 1 , 0 , 1 , 0 , 1 , 1

Data4:
Data 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1

Valaszt:

S = S + 1
If S > 3 Then S = 0
Select Case S
Case 0 'adatsor választás
Restore Data1
Case 1
Restore Data2
Case 2
Restore Data3
Case 3
Restore Data4
End Select

Return

Olv0:
B = 1

Select Case S
Case 0
Restore Data1 ' hogy ne menjen át másik adatsorba olvasni
Case 1
Restore Data2
Case 2
Restore Data3
Case 3
Restore Data4
End Select

Return
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 »

AÁÁÁÁÁÁ
Már tudom mire való az end if.
Megrövidülhet a progim .
Sok felfedezni valóm van még!!
Avatar
herc1234
Bitfaragó
Hozzászólások: 459
Csatlakozott: 2007. február 9. péntek, 7:00

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

Mondtam én Robert hogy a programnyelv ismerete milyen fontos ! :D
De azt hiszem a felfedezés öröme legalább annyira...
Válasz küldése