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 

Programiranje v bascom avr
Pojdi na stran Prejšnja  1, 2, 3 ... 20, 21, 22 ... 36, 37, 38  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Bascom sekcija
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.03
Kraj: Dragomer

PrispevekObjavljeno: Pon Jan 03, 2011 11:59 am    Naslov sporočila:   Odgovori s citatom

TECHNIC je napisal/a:
Skušam naredit soft-start elektromotorja brez uporabe pwm-ja in prekinitev (prekomplicirano zame). Ne rabi biti nič eksotično, samo kakšnih 10 ms spreminjanja širine pulza od nekje 20 do 100%.

Takšna koda bi po pričakovanju morala delovati, vendar je rezultat prav obraten:
Koda:
   Reset Startmotor
      I = 255
      J = 0
      K = 255
   While I > 1
      Pulseout Portb , 1 , J
      Toggle Startmotor
      Pulseout Portb , 1 , K
      Toggle Startmotor
      I = I - 1
      J = J + 1
      K = K - 1
   Wend


Predpostavljam, da je izhod pin, ki je definiran kot Startmotor. Pulseout pa si vgradil samo zato, da si dobil potrebne zakasnitve. Drži?

Jaz bi programiral morda tako:
Koda:
Startmor Alias Portx.y                                      ' kamor je priklopljen rele za start motorja
Config Startmotor = Output
Startmotor = 1
' prepodstavljam, da je motor pod napetostjo, ko je ta pin na 0

For I = 0 To 255
    J = 255 - I
    Reset Startmotor
    Pulseout Port , Pin , J
    Set Startmotor
    Pulseout Port , Pin , I
Next
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.63
Kraj: Mengeš

PrispevekObjavljeno: Pon Jan 03, 2011 3:25 pm    Naslov sporočila:   Odgovori s citatom

Ravno testiram EEPROM 24C64 na tiny2313...zanima me če kdo lahko razloži zakaj zadeva ne deluje če izberem SCL/SDA na porta D0 in D1 - na portih D2 in D3 pa deluje...je to kaj v povezavi z dejstvom da sta podta D0 in D1 RXD in TXD?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
red_mamba
Član
Član



Pridružen-a: Ned 20 Feb 2005 17:56
Prispevkov: 1486
Aktiv.: 6.66
Kraj: Yogyakarta

PrispevekObjavljeno: Pon Jan 03, 2011 3:59 pm    Naslov sporočila:   Odgovori s citatom

protoncek je napisal/a:
Ravno testiram EEPROM 24C64 na tiny2313...zanima me če kdo lahko razloži zakaj zadeva ne deluje če izberem SCL/SDA na porta D0 in D1 - na portih D2 in D3 pa deluje...je to kaj v povezavi z dejstvom da sta podta D0 in D1 RXD in TXD?


Ponavadi je potrebno pravilno nastaviti registre tem pinom ki imajo alternativne funkcije, podobno sem se enkrat ubadal na atmega8 z i/o signali kjer ni in ni šla praksa z logiko skupaj. Na koncu sem ugotovil da so po defaultu definirani kot analogni vhodi Very Happy

_________________
Bad things happen to good people all the time for no reason!
Blog
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.63
Kraj: Mengeš

PrispevekObjavljeno: Pon Jan 03, 2011 4:17 pm    Naslov sporočila:   Odgovori s citatom

Jaz tudi sklepam da so očitno po default-u nastavljeni na RX-TX, ker se ob izvedbi programa ne dogaja nič na njih...samo kako do teh nastavitev... Confused je pa že preveč za mojo pamet...
mogoče bi dal portd= output in nato definiral SCL in SDA...
(AJA---delam z bascom-om).
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
RGorazd
Član
Član



Pridružen-a: Čet 20 Maj 2004 15:57
Prispevkov: 1713
Aktiv.: 7.68
Kraj: Ig

PrispevekObjavljeno: Pon Jan 03, 2011 5:50 pm    Naslov sporočila:   Odgovori s citatom

Po default-u bi mogli biti na GPIO. Si poizkusil z zunanjimi pull -up upori?
_________________
.
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._|
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.63
Kraj: Mengeš

PrispevekObjavljeno: Pon Jan 03, 2011 6:47 pm    Naslov sporočila:   Odgovori s citatom

Ja, pull up upore imam. Niti nisem še poskušal brez njih. Razmišljam... Z obzirom da je tu ukaz baudrate=19200 mogoče on sam preklopi funkcijo portov na rx/tx način...
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14555
Aktiv.: 65.28
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Pon Jan 03, 2011 6:58 pm    Naslov sporočila:   Odgovori s citatom

Assemblersko gledano so pini po resetu čisto enakovredni. Težava je v tvoji proceduri ali pa se je neka procedura že "vsedla" na pine.
_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
blay44
Član
Član



Pridružen-a: Ned 19 Dec 2010 18:17
Prispevkov: 603
Aktiv.: 3.71

PrispevekObjavljeno: Pon Jan 03, 2011 7:30 pm    Naslov sporočila:   Odgovori s citatom

Mene pa zanima, če lahko v baskomu nastaviš timer+pwm, da dela neodvisno(da ne zaseda časa izvajanja programa) in izhod daje na OC0A ali B? Je to sploh mogoče ali timer vedno sproži samo prekinitev in ponovno nalaganje?
Gre za tiny13.

LP
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.63
Kraj: Mengeš

PrispevekObjavljeno: Pon Jan 03, 2011 7:49 pm    Naslov sporočila:   Odgovori s citatom

silvo, ti sicer nisi doma v bascomu, ampak vseeno prilagam kodo...sicer zaenkrat ni življenjsko pomembno, zakaj se to dogaja, je pa zanimivo, ker načeloma ne bi smelo biti. Spodaj je celotna koda...če PIND.2 in PIND.3 zamenjam s PIND.0 in PIND.1 se na teh dveh pinih ne dogaja prav nič - na test plošči megapin pri uporabi portov 2-3 LEDice utripajo, pri 0-1 pa nič...
0 in 12 je adresa, bajt pa polnim s številko 48.
Koda:
$regfile = "attiny2313.dat"                                 ' specify the used micro
$crystal = 1000000                                          ' used crystal frequency
$baud = 19200                                               ' use baud rate
$hwstack = 32                                               ' default use 32 for the hardware stack
$swstack = 10                                               ' default use 10 for the SW stack
$framesize = 40                                             ' default use 40 for the frame space
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Pinb.2 , Db5 = Pinb.3 , Db6 = Pinb.4 , Db7 = Pinb.5 , E = Pinb.1 , Rs = Pinb.0



Config Scl = Portd.2
Config Sda = Portd.3




Dim Value As Byte

Cls

'writing
  I2cstart                                                  'start condition
  I2cwbyte &B10101000                                       'slave address
  I2cwbyte 0                                                'asdress of EEPROM
  I2cwbyte 12
  I2cwbyte 48                                               'value to write
  I2cstop                                                   'stop condition
  Wait 1

'reading
  I2cstart
  I2cwbyte &B10101000                                       'slave address
  I2cwbyte 0                                                'asdress of EEPROM
  I2cwbyte 12
  I2cstart                                                  'start condition
  I2cwbyte &B1010_0011                                      'slave address
  I2crbyte Value , Nack                                     'value to write
  I2cstop                                                   'read it back

Lcd "prebrano:" ; Value


End
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Vlado
Član
Član



Pridružen-a: Sre 03 Mar 2004 21:35
Prispevkov: 561
Aktiv.: 2.52
Kraj: Ljubljana

PrispevekObjavljeno: Pon Jan 03, 2011 7:56 pm    Naslov sporočila:   Odgovori s citatom

Protonček,
ja problem je ker ti Bascom tem pinom dodeli funkcijo rx in tx pinov.
V programu imaš definiran $Baud, poskusi odstraniti tisto iz svoje kode, vendar vseeno mislim da ne bo dovolj ker so te nastavitve tudi v Bascom Options od koder jih Bascom vzame pri prevajanju in se boš moral poigrati z registrom da tem pinom vrneš normalno I/O funkcijo.
Vlado
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.63
Kraj: Mengeš

PrispevekObjavljeno: Pon Jan 03, 2011 8:34 pm    Naslov sporočila:   Odgovori s citatom

aha...no, malce se mi je zdelo da je lahko to...ker tudi če vrinem vrstico portd=output LEdici 0 in 1 ostaneta neaktivni, 2 in 3 utripata (ker sta SCL in SDA), 4,5 in 6 pa gredo na vrednost nič. (sedmice ni pri 2313).
Torej bi moral ročno vnesti nekakšen ukaz za vpis funkcije portov 0 in 1?
Bom moral bolj podrobno pregledati datasheet...
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
strobos
Član
Član



Pridružen-a: Sre 24 Sep 2003 12:19
Prispevkov: 726
Aktiv.: 3.26
Kraj: Brežice

PrispevekObjavljeno: Pon Jan 03, 2011 8:36 pm    Naslov sporočila:   Odgovori s citatom

Odstrani $baud če ga ne uporabljaš (print ukazi).

Lp
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.63
Kraj: Mengeš

PrispevekObjavljeno: Pon Jan 03, 2011 8:43 pm    Naslov sporočila:   Odgovori s citatom

Evo, odstranil sem ukaz baud in zares zadeva deluje! Kar je čudno je to da sem celotno rutino prekopiral iz HELP-a v bascomu...torej sem avtomatično sklepal da mora to biti tam...sem pa zastonj gledal v datasheet-u 24C64 kakršenkoli podatek o hitrosti, razen da podpira 400 khz protokol...
Torej, še en problem rešen. Najlepša hvala vsem za pomoč!
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
strobos
Član
Član



Pridružen-a: Sre 24 Sep 2003 12:19
Prispevkov: 726
Aktiv.: 3.26
Kraj: Brežice

PrispevekObjavljeno: Pon Jan 03, 2011 8:44 pm    Naslov sporočila:   Odgovori s citatom

Sicer vidim, da se SCL in SDA nahajata na Portb.7 in Portb.5

Lp
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.63
Kraj: Mengeš

PrispevekObjavljeno: Pon Jan 03, 2011 8:53 pm    Naslov sporočila:   Odgovori s citatom

hm...zanimivo. Zdaj sem pa v dvomih---v čem je poanta namreč. Če moraš v bascomu navesti kje sta ta dva signala? Če brišem ti dve vrstici, mi prevajalnik javi napako, torej definicija MORA biti tam...
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Bascom sekcija Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2, 3 ... 20, 21, 22 ... 36, 37, 38  Naslednja
Stran 21 od 38

 
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: 75 dni


Powered by phpBB © 2001, 2005 phpBB Group