változók konstansok meghatározások stb..

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
kovacsna
Pákabűvész
Hozzászólások: 208
Csatlakozott: 2008. június 3. kedd, 6:00

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

Is-is:)

Tudom!!! De nem műxik az értékadás

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


sub valami(x as word)

locale a(2) as byte

a(1) = high(x)
a(2) = low(x)

end sub

Ahogyan azt sem, hogy mért akarja a fordító, hogy a sub deklarálásakor byval-t írjak a változó elé... 5 db értékátadás volna...[/code]
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

Avatar
kovacsna
Pákabűvész
Hozzászólások: 208
Csatlakozott: 2008. június 3. kedd, 6:00

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

Elírtam, itt a fórumban. A kódban jól volt.

Értem és tudtam is ezt, de le sem fordul , amíg nem írom a byval-t elé....
Avatar
herc1234
Bitfaragó
Hozzászólások: 459
Csatlakozott: 2007. február 9. péntek, 7:00

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

üdv

Van egy megoldásra váró problémám de nincs rá jó ötletem.
van egy 1sec enként beugró TIMER:

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

Timer1subrutine:

Load Timer1 , Timer1reload
Set Run
Set Idostate
If Terapiasido > 0 Then
   Decr Terapiasido
Else
   Set Terapialejart
   If Napozoido > 0 Then
      Decr Napozoido
   Else
   Set Napozolejart
   End If
End If
Return
namost van két word változó Terapiasido és Napozoido
amiből MOD 60 al lebontom perc és másodperc kijelzésre

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

Idokijelzes:

Gosub Idokalkulator
Locate 2 , 1 : Lcd "Ido: "
If Terapiasido > 0 Then
   Locate 2 , 6 : Lcd Tmin ; ":" ; Tsec ; " "
Else
   If Napozoido > 0 Then
      Locate 2 , 6 : Lcd Nmin ; ":" ; Nsec ; " "
   End If
End If
Return
az hogy másodpercenként legyen egy csipogás ami jelzi az idő
teltét meg hogy egyáltalán nem fagyott még le az rendben van
de jó volna egy if feltétellel valahogy az egész perceket is hangal
kijelezni..
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

masodperc= ido mod 60
if masodperc=0 then perces_csipogas else call masodpeces_csipogas


És minden a 1secenkénti timer rutinban...
Avatar
kovacsna
Pákabűvész
Hozzászólások: 208
Csatlakozott: 2008. június 3. kedd, 6:00

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

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

Config Timer1 = Timer , Prescale = 64                       'Timer1 konfigurálás
On Timer1 Tick                                              'Timer1 megszakítási rutin
Timer1 = 53035                                              'Timer1 kezdőérték 100ms-os megszakítéshoz


Enable Timer1


Reset Mtimer100ms
Reset Mtimer500ms
Mtimer100ms_tmp = 0
Mtimer500ms_tmp = 0

do

   If Mtimer100ms_tmp = 1 Then

      Toggle Mtimer100ms
      Incr Mtimer500ms_tmp
      Mtimer100ms_tmp = 0

   End If


   
   If Mtimer500ms_tmp = 5 Then

      Toggle Mtimer500ms
      Mtimer500ms_tmp = 0

   End If
.
.
.
loop


Tick:

   Timer1 = 53035

   Incr Mtimer100ms_tmp

Return

Én így csináltam meg egy progiban.

Van egy 100 és egy 500msec-es tickem. Én villogtatásra használtam.
Avatar
herc1234
Bitfaragó
Hozzászólások: 459
Csatlakozott: 2007. február 9. péntek, 7:00

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

mindkét megoldás szuper köszönöm
a Robi félét csináltam meg
csak nem a timerbe raktam mert egy hosszu csipogás
mondjuk amit én szeretnék 600ms foglal el
de beraktam a kijelzés rutinba ott nem zavarja a timert amibe
egy rövid kattanás jelzi a másodperceket igy az maradt 3ms
8Mhz.en
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

A timerben bebillentesz egy jelzőbitet és a főprogramban valahol kiértékeled.
Durvább megoldás: csipogó rajta van egy timeren és a timer ki/bekapcsol (PWM kimenet :P )
Válasz küldése