|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.03 Kraj: Dragomer
|
Objavljeno: Pon Jan 03, 2011 11:59 am Naslov sporočila: |
|
|
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 |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 45.64 Kraj: Mengeš
|
Objavljeno: Pon Jan 03, 2011 3:25 pm Naslov sporočila: |
|
|
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 |
|
|
red_mamba Član
Pridružen-a: Ned 20 Feb 2005 17:56 Prispevkov: 1486 Aktiv.: 6.67 Kraj: Yogyakarta
|
Objavljeno: Pon Jan 03, 2011 3:59 pm Naslov sporočila: |
|
|
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 _________________ Bad things happen to good people all the time for no reason!
Blog |
|
Nazaj na vrh |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 45.64 Kraj: Mengeš
|
Objavljeno: Pon Jan 03, 2011 4:17 pm Naslov sporočila: |
|
|
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... 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 |
|
|
RGorazd Član
Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1713 Aktiv.: 7.68 Kraj: Ig
|
Objavljeno: Pon Jan 03, 2011 5:50 pm Naslov sporočila: |
|
|
Po default-u bi mogli biti na GPIO. Si poizkusil z zunanjimi pull -up upori? _________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 45.64 Kraj: Mengeš
|
Objavljeno: Pon Jan 03, 2011 6:47 pm Naslov sporočila: |
|
|
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 |
|
|
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14555 Aktiv.: 65.28 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Pon Jan 03, 2011 6:58 pm Naslov sporočila: |
|
|
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 |
|
|
blay44 Član
Pridružen-a: Ned 19 Dec 2010 18:17 Prispevkov: 603 Aktiv.: 3.71
|
Objavljeno: Pon Jan 03, 2011 7:30 pm Naslov sporočila: |
|
|
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 |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 45.64 Kraj: Mengeš
|
Objavljeno: Pon Jan 03, 2011 7:49 pm Naslov sporočila: |
|
|
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 |
|
|
Vlado Član
Pridružen-a: Sre 03 Mar 2004 21:35 Prispevkov: 561 Aktiv.: 2.52 Kraj: Ljubljana
|
Objavljeno: Pon Jan 03, 2011 7:56 pm Naslov sporočila: |
|
|
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 |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 45.64 Kraj: Mengeš
|
Objavljeno: Pon Jan 03, 2011 8:34 pm Naslov sporočila: |
|
|
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 |
|
|
strobos Član
Pridružen-a: Sre 24 Sep 2003 12:19 Prispevkov: 726 Aktiv.: 3.26 Kraj: Brežice
|
Objavljeno: Pon Jan 03, 2011 8:36 pm Naslov sporočila: |
|
|
Odstrani $baud če ga ne uporabljaš (print ukazi).
Lp |
|
Nazaj na vrh |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 45.64 Kraj: Mengeš
|
Objavljeno: Pon Jan 03, 2011 8:43 pm Naslov sporočila: |
|
|
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 |
|
|
strobos Član
Pridružen-a: Sre 24 Sep 2003 12:19 Prispevkov: 726 Aktiv.: 3.26 Kraj: Brežice
|
Objavljeno: Pon Jan 03, 2011 8:44 pm Naslov sporočila: |
|
|
Sicer vidim, da se SCL in SDA nahajata na Portb.7 in Portb.5
Lp |
|
Nazaj na vrh |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 45.64 Kraj: Mengeš
|
Objavljeno: Pon Jan 03, 2011 8:53 pm Naslov sporočila: |
|
|
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 |
|
|
|
|
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: 74 dni
Powered by phpBB © 2001, 2005 phpBB Group
|