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 ... 21, 22, 23 ... 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
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 10:27 pm    Naslov sporočila:   Odgovori s citatom

Tam se nahajata hardwerska pina za I2C (Portb.7 in Portb.5). Ampak ti imaš tam definiran LCD. Če ti s to definicijo dela, potem ti verjetno I2C dela softwersko.

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.68
Kraj: Mengeš

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

Ja, tam imam LCD, to je res. Samo LCD bi lahko prestavil drugam, pa moram v bascomu še vedno imeti tisti dve vrstici za definiranje kje sta SDA in SCL. Mogoče če bi pisal v asemblerju, se ta dva pina smatrata za i2c porte.
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 10:37 pm    Naslov sporočila:   Odgovori s citatom

Seveda vrstici za definiranje teh dveh signalov morata biti. Važno je le, ali boš imel hardwerski I2C ali softwerski. Poglej v simulatorju, če ti softwerski I2C uporablja kak timer.

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.68
Kraj: Mengeš

PrispevekObjavljeno: Pon Jan 03, 2011 10:55 pm    Naslov sporočila:   Odgovori s citatom

aha, torej lahko sklepam da v primeru softwarskega I2C procesor bolj trdo dela, kar pomeni da bi mu v primeru časovne stiske lahko škripalo drugje v izvedbi programa...
Če uporablja timer----uh Think ne znam pogledati.. Brick wall noob pač...
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 11:01 pm    Naslov sporočila:   Odgovori s citatom

Pogledaš če se spreminjajo vrednosti registrov (TCCR....ali nekaj takega - timer control registri).

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.68
Kraj: Mengeš

PrispevekObjavljeno: Pon Jan 03, 2011 11:06 pm    Naslov sporočila:   Odgovori s citatom

aha...ne, spreminjata se samo SPL in SREG. TCCR ostajajo nule.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
TECHNIC
Član
Član



Pridružen-a: Tor 31 Okt 2006 11:18
Prispevkov: 582
Aktiv.: 2.74
Kraj: Senovo

PrispevekObjavljeno: Sob Jan 08, 2011 7:35 pm    Naslov sporočila:   Odgovori s citatom

Končno uspel preizkusiti Vilkovo kodo za soft-start motorja. Po parih popravkih (napaka bascoma?) deluje odlično, res odlično. Smile

Če se v programu pojavi Pulseout, port, pin, 0 (torej zakasnitev 0), se celotna for zanka ponovi s stanjem pina v eni vrednosti. Torej je prvič delovalo nekako tako - vklop motorja za 5 ms, 5ms pwm 0-100%, 5ms izklop motorja.

Hvala še enkrat Vilko!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
vilko
Član
Član



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

PrispevekObjavljeno: Sob Jan 08, 2011 9:58 pm    Naslov sporočila:   Odgovori s citatom

Rad slišim, da naredim kaj dobrega. Hvala.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
rok
Član
Član



Pridružen-a: Pet 13 Mar 2009 16:31
Prispevkov: 365
Aktiv.: 1.99
Kraj: Dravograd

PrispevekObjavljeno: Sob Jul 09, 2011 12:30 am    Naslov sporočila:   Odgovori s citatom

Pozdrav!

Kak mesec nazaj sem začel s programiranjem v Bascom-u (predvsem lučke on-off),
ter vse mogoče druge enostavne zadeve. Ker je vedno bolj vroče in pri hiši ni nekega prenosnega termometra sem si zadal nalogo izdelati svojega. Uporabil sem 3 7-seg displejčke, tinny2313 ter DS1820.
Koda za multipleks mi lepo deluje, tudi del kode za branje temperature iz termometra. Zataknilo se mi je pri pretvorbi (oz. že pri branju iz termometra) saj ne znam/nevem kako prebrati temeperaturo,
ter jo razstaviti na posamezne števke (primer 23.4 stopinj-> števke 2,3,4). Kako bi lahko to izvedel?
Sedanja rutina mi ne odgovarja (sem še zelo zelen začetnik). V priponki je shema dosedanjega sistema. Prilagam tudi do sedaj spisano kodo.

Sedanja koda mi na displejčkih prikaže samo 00.0 Kje ga lomim?

Lep pozdrav,
Rok

PS: Sem pogledal primere po internetu in help-u pa si je ne znam razložiti.
Displejčki so CA ne CC ko je podano v shemi. Se prav lepo prižigajo Smile

Koda:
$regfile "attiny2313.dat"

 Config Portd = Output
 Config Portb = Output


 Dim A As Byte
 Dim B As Byte
 Dim C As Byte
 Dim D As Byte
 Dim E As Byte
 Dim F As Byte
 Dim T1 As Byte
 Dim T2 As Byte
 Dim T3 As Byte
 Dim T As Integer





T = 0




 Config 1wire = Portb.0

  A = 0


Do

  For B = 0 To 9
  Pinb.1 = 0
 Portd = Lookup(a , Prikaz)
 Waitms 20
 Pinb.1 = 1


 Pinb.2 = 0
 Portd = Lookup(a , Prikaz)
 Waitms 20
 Pinb.2 = 1

 Pinb.3 = 0
 Portd = Lookup(a , Prikaz)
 Waitms 20
 Pinb.3 = 1

 A = A + 1
 If A > 9 Then
 A = 0
 End If
 Next

 Pinb.1 = 1
 Portd = 0
 Waitms 500
 Portd = 255
 Pinb.1 = 0


 Do

    1wreset
    1wwrite &HCC
    1wwrite &H44
    Waitms 750


    1wreset

    1wwrite &HCC
    1wwrite &HBE

    T = 1wread(2)
    1wreset


    T = T / 2
    T1 = T / 10


    For E = 0 To 5

    For D = 0 To 170

    Pinb.1 = 0
    Portd = Lookup(t1 , Prikaz)
    Waitus 850
    Pinb.1 = 1

    Pinb.2 = 0
    Portd = Lookup(c , Prikaz)
    Waitus 850
    Pinb.2 = 1


    Pinb.3 = 0
    Portd = Lookup( , Prikaz)
    Waitus 850
    Pinb.3 = 1
    Portd = 255

    Next
    Next




    Loop



Termometer.pdf
 Opis:

Download
 Ime datoteke:  Termometer.pdf
 Velikost datoteke:  21.82 KB
 Downloadano:  6 krat


_________________
I live in a world where vacuum tube is king!!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Silvo
Moderator
Moderator



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

PrispevekObjavljeno: Sob Jul 09, 2011 1:14 am    Naslov sporočila:   Odgovori s citatom

Za bascom ti sicer ne znam pomagat. Lahko ti dam edino nasvet glede 1Wire protokola.

Sam protokol zahteva v določenih trenutkih točne timinge (pri branju 1 oz 0, resetu...) V teh trenutkih se NE SMEJO izvajati nobene prekinitve sicer bo prišlo do napak. Celotno branje, konvezrija pa traje ranga nekaj deset ms. V koliko ti tvoje programsko orodje dopušča prekintive ob pravih trenutkih, da boš lahko vršil multipleksiranje potem ok. (nekoč mi je nekdo rekel, da to v bascomu ne gre) Sicer ti bo ob branju senzorja prihajalo do neprijetnega utripanja displeja.

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
rok
Član
Član



Pridružen-a: Pet 13 Mar 2009 16:31
Prispevkov: 365
Aktiv.: 1.99
Kraj: Dravograd

PrispevekObjavljeno: Sob Jul 09, 2011 1:39 am    Naslov sporočila:   Odgovori s citatom

Pozdrav!

Silvo, najlepsa hvala za to informacijo. Jaz imam to reseno tako, da mi vse obstoji.
Po vsakem multipleksu displejcke ugasnem, nato pa vsakih 850 ciklov ponovim branje temperature. Na minipin plosci je zadeva delovala super, a vseeno nisem znal izracunati in prikazati deserinko stopinje. Ravnam se pa po prirocniku Bascom Avr za vse.

Lep pozdrac,
Rok

_________________
I live in a world where vacuum tube is king!!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
vilko
Član
Član



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

PrispevekObjavljeno: Sob Jul 09, 2011 7:01 am    Naslov sporočila:   Odgovori s citatom

rok je napisal/a:
Pozdrav!
Kak mesec nazaj sem začel s programiranjem v Bascom-u


Že kar nekaj časa programiram v Bascomu. In če dovoliš, ti toplo priporočam, da v vsakem programu 'žrtvuješ' en pin za pisanje raznih informacij na PC-Brayev terminal emulator. Programer enostavno mora imeti orodje, da vidi, kaj se dogaja v mikroprocesorju, ki ga programira. In ekran PC-a je dobro orodje v ta namen.

Če te zanima, ti bom po elektronski pošti poslal primer in navodila, kako to narediti.
Izdelati si moraš TTL-RS232 adapter, na ttl vhod priklopiš pin, na RS232 pa PC.
Brez tega orodja dandanes ne programiram več...

Pozdrav
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.68
Kraj: Mengeš

PrispevekObjavljeno: Sob Jul 09, 2011 8:56 am    Naslov sporočila:   Odgovori s citatom

Jaz bi poskusil tsko, da bi prebrano temperaturo pretvoril v string (str) potem pa lahko bereš posamezne segmente tega stringa - prvi in drugi bosta temperatura, tretji decimalna pika, četrti pa decimalka temperature. Imaš pa na voljo tudi npr. FRAC, ki ti vrne decimalno vrednost neke spremenljivke, medteko ti ukaz int vrne samo celi del.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
rok
Član
Član



Pridružen-a: Pet 13 Mar 2009 16:31
Prispevkov: 365
Aktiv.: 1.99
Kraj: Dravograd

PrispevekObjavljeno: Sob Jul 09, 2011 1:14 pm    Naslov sporočila:   Odgovori s citatom

Pozdrav!

Poskušal sem pretvoriti integer v string a mi ni uspelo. Najprej izmerim T (temperatura), nato to pretvorim v string T1. Iz tega nato kličem posamezne pozicije in jih vpisujem v spremenljivke D1-D3.
Te nato uporabim za prikaz vrednosti na posameznem displayu. Ko zadevo poženem, se mi vedno izpiše le 00.0
Kje bi lahko bil problem?
Koda:
$regfile "attiny2313.dat"

 Config Portd = Output
 Config Portb = Output


 
 Dim T1 As String * 4
 Dim T2 As Byte
 Dim T3 As Byte
 Dim T As Integer
 Dim A1 As Byte
 Dim A2 As Byte
 Dim A3 As Byte


 Dim D1 As Byte
 Dim D2 As Byte
 Dim D3 As Byte

 A1 = 1
 A2 = 2
 A3 = 3

T = 23.4
Config 1wire = Portb.0
A = 0

Do
 T1 = "T"
 T1 = Str(t)


 1wreset
 1wwrite &HCC
 1wwrite &H44
 Wait 1

 1wreset
 1wwrite &HCC
 1wwrite &HBE

 T = 1wread(2)
 1wreset



 D1 = Instr(t1 , A1)
 D2 = Instr(t1 , A2)
 D3 = Instr(t1 , A3)



    For E = 0 To 5

    For D = 0 To 170

    Pinb.1 = 0
    Portd = Lookup(d1 , Prikaz)
    Waitus 850
    Pinb.1 = 1

    Pinb.2 = 0
    Portd = Lookup(d2 , Prikaz)
    Waitus 850
    Pinb.2 = 1


    Pinb.3 = 0
    Portd = Lookup(d3 , Prikaz)
    Waitus 850
    Pinb.3 = 1
    Portd = 255

    Next
    Next
   
    Loop



Prav tako nisem prepričan če pravilno ustvarjam string iz T.
Ali lahko prosim nekoga, da mi namigne del kode za konverzijo integerja v string, ter kako se pravilno berejo posamezne pozicije stringa?

Hvala za odgovore!

Vilko, hvala za ta koristen nasvet in hkrati bi vas prosil za načrte za rs232 vmesnik. (vam pošljem ZS).

Lep pozdrav,
Rok

_________________
I live in a world where vacuum tube is king!!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Silvo
Moderator
Moderator



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

PrispevekObjavljeno: Sob Jul 09, 2011 1:45 pm    Naslov sporočila:   Odgovori s citatom

Sam vmesnik ni kaka umetnost. Poglej tega proteusovega. Pri meni je v rabi od nastanka tistega članka. (l. 2005) Če nimaš na razpolago serijskega porta potem je najbolje narediti tak USB vmesik z FT232 ali MPC2200
_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
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 ... 21, 22, 23 ... 36, 37, 38  Naslednja
Stran 22 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: 68 dni


Powered by phpBB © 2001, 2005 phpBB Group