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 ... 35, 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
Vlado
Član
Član



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

PrispevekObjavljeno: Sob Jan 30, 2016 12:44 pm    Naslov sporočila:   Odgovori s citatom

Nekaj na to temo lahko najdete na:
http://www.mcselec.com/index.php?option=com_content&task=view&id=211&Itemid=57

http://www.mcselec.com/index.php?option=com_content&task=view&id=73&Itemid=57
LP
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mato1111
Član
Član



Pridružen-a: Pet 28 Dec 2012 14:42
Prispevkov: 611
Aktiv.: 4.46
Kraj: Vrhnika

PrispevekObjavljeno: Sob Jan 30, 2016 1:38 pm    Naslov sporočila:   Odgovori s citatom

V mislih sem imel PID za nadzor temperature
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mato1111
Član
Član



Pridružen-a: Pet 28 Dec 2012 14:42
Prispevkov: 611
Aktiv.: 4.46
Kraj: Vrhnika

PrispevekObjavljeno: Ned Mar 13, 2016 4:28 pm    Naslov sporočila:   Odgovori s citatom

Imam težave z ATmega32 in RTC DS1307.
Iz SDA in SCL imam dva 10K upora na 5V ter ustrezen kristal na DS1307.
Ure, minute in sekunde mi kaže pravilno, dan, mesec in leto pa ne.
Testiram pa tako, da na uart vnesem čas in datum program to zapiše v DS1307 in potem prebere z njega in mi podatke pošlje nazaj na uart.

Primer, pošljem mu podatke 02112015223344 (02-dan, 11-mesec, 2015-leto, 22-ura, 33-minute, 44-sekunde), odgovori pa mi z 01022011223344 ki pa bi moral biti v istem zaporedju kot ko sem jih poslal jaz. ura je v redu (zadnjih 6 številk - 223344) datum pa je kar nekaj (01022011 Eh? ).
Uporabljam knjižnico ds1307clock.lib

Še del programa kjer mislim, da je napaka:
Koda:

Podatkicas = Mid(podatki_prejeto , 11 , 15)             'podatkicas=02112015223344
      Stringtobyte = Mid(podatkicas , 1 , 2)                'dobi dan
       _day = Val(stringtobyte)
       Stringtobyte = Mid(podatkicas , 3 , 2)               'dobi mesec
       _month = Val(stringtobyte)
       Stringtobyte = Mid(podatkicas , 7 , 2)               'dobi leto (samo zadnji dve številki: 15)
       _year = Val(stringtobyte)
      Stringtobyte = Mid(podatkicas , 9 , 2)                'dobi ura
       _hour = Val(stringtobyte)
      Stringtobyte = Mid(podatkicas , 11 , 2)               'dobi minuta
       _min = Val(stringtobyte)
       Stringtobyte = Mid(podatkicas , 13 , 2)              'dobi sekunda
       _sec = Val(stringtobyte)

      Gosub Setdate
      Waitms 100
       Gosub Settime
      Waitms 100
      Gosub Getdatetime

   If _day < 10 Then
   Strday = "0" + Str(_day )
   Else
   Strday = Str(_day )
   End If
   If _month < 10 Then
   Strmonth = "0" + Str(_month )
   Else
   Strmonth = Str(_month )
   End If
   Stryear = "20" + Str(_year )
   If _hour < 10 Then
   Strhour = "0" + Str(_hour )
   Else
   Strhour = Str(_hour)
   End If
   If _min < 10 Then
   Strmin = "0" + Str(_min )
   Else
   Strmin = Str(_min )
   End If
   If _sec < 10 Then
   Strsec = "0" + Str(_sec )
   Else
   Strsec = Str(_sec )
   End If

   Print Strday ; Strmonth ; Stryear ; Strhour ; Strmin ; Strsec

Getdatetime:
  I2cstart                                                  ' Generate start code
  I2cwbyte Ds1307w                                          ' send address
  I2cwbyte 0                                                ' start address in 1307

  I2cstart                                                  ' Generate start code
  I2cwbyte Ds1307r                                          ' send address
  I2crbyte _sec , Ack
  I2crbyte _min , Ack                                       ' minute
  I2crbyte _hour , Ack                                      ' ure
  I2crbyte _day , Ack                                       ' dan
  I2crbyte _month , Ack                                     ' mesec
  I2crbyte _year , Nack                                     ' leto
  I2cstop
  _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
  _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
Return

Setdate:
  _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
  I2cstart                                                  ' Generate start code
  I2cwbyte Ds1307w                                          ' send address
  I2cwbyte 4                                                ' starting address in 1307
  I2cwbyte _day                                             ' dan
  I2cwbyte _month                                           ' mesec
  I2cwbyte _year                                            ' leto
  I2cstop
  Waitms 10
Return

  Settime:
  _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
  I2cstart                                                  ' Generate start code
  I2cwbyte Ds1307w                                          ' send address
  I2cwbyte 0                                                ' starting address in 1307
  I2cwbyte _sec                                             ' sekunde
  I2cwbyte _min                                             ' minute
  I2cwbyte _hour                                            ' ure
  I2cstop
  Waitms 10
Return
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.83
Kraj: Mengeš

PrispevekObjavljeno: Ned Mar 13, 2016 5:26 pm    Naslov sporočila:   Odgovori s citatom

Ti imaš dan-mesec-leto. kaj pa "day of week"? Datum je v obliki:
Nedelja (=day of week), 13 (=dan), 3(=mesec) 2016 (leto se računa samo 16).
Nikjer ne vidim, da bi vpisal dan v tednu...posledično si datum vpisal narobe in dobil ven
01022011223344, kar pomeni 01=recimo ponedeljek, 02.20.(20)11, ura=22:33:44.

Glej tabelo v datasheetu, stran 8. Saj vpisuješ prav (no, ne vpišeš dneva, ampak na prave adrese), samo pri branju preskočiš "day of week"...

Dan v tednu je od 1 do 7, kaj je kaj, določiš sam, jaz ponavadi rečem, da je 1 ponedeljek, 7 pa nedelja (dan se pri nas začne s ponedeljkom).
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
joze
Član
Član



Pridružen-a: Pet 26 Jan 2007 10:27
Prispevkov: 200
Aktiv.: 0.96

PrispevekObjavljeno: Ned Mar 13, 2016 7:02 pm    Naslov sporočila:   Odgovori s citatom

Dan v tednu je od 1 do 7, kaj je kaj, določiš sam, jaz ponavadi rečem, da je 1 ponedeljek, 7 pa nedelja (dan se pri nas začne s ponedeljkom).

Kako določiš sam, kaj ni vezan na datum (dan)?

Če pogledaš na kolendar za določeni datum (dan), vidiš kateri dan v tednu je.

Se motim?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



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

PrispevekObjavljeno: Ned Mar 13, 2016 7:19 pm    Naslov sporočila:   Odgovori s citatom

joze je napisal/a:
Dan v tednu je od 1 do 7, kaj je kaj, določiš sam, jaz ponavadi rečem, da je 1 ponedeljek, 7 pa nedelja (dan se pri nas začne s ponedeljkom).

Kako določiš sam, kaj ni vezan na datum (dan)?

Če pogledaš na kolendar za določeni datum (dan), vidiš kateri dan v tednu je.

Se motim?


Nee. Sam s seboj se dogovoriš, kaj pomeni številka med 0 in 6 oziroma med 1 in 7.
RTC samo skrbi, da se ob prelomu dneva števec dvigne za ena, in na koncu prevrne na 0 oziroma 1. Ne vem kako je to pri konkretnem RDT čipu. Osebno uporabljam starega PCF8583

_________________
Prepričan sem, da je inteligentnih bitij v vesolju veliko. A ker so inteligenta, se nam nočejo prikazati.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mato1111
Član
Član



Pridružen-a: Pet 28 Dec 2012 14:42
Prispevkov: 611
Aktiv.: 4.46
Kraj: Vrhnika

PrispevekObjavljeno: Ned Mar 13, 2016 8:14 pm    Naslov sporočila:   Odgovori s citatom

Ja hvala stvar sedaj deluje Dancing
Dodal sem vrstico
Koda:
I2crbyte _Weekday , Ack


Koda:

Getdatetime:
  I2cstart                                                  ' Generate start code
  I2cwbyte Ds1307w                                          ' send address
  I2cwbyte 0                                                ' start address in 1307

  I2cstart                                                  ' Generate start code
  I2cwbyte Ds1307r                                          ' send address
  I2crbyte _sec , Ack                                       ' sekunde
  I2crbyte _min , Ack                                       ' minute
  I2crbyte _hour , Ack                                      ' ure
  I2crbyte _Weekday , Ack             ' < GLEJ TUKAJ
  I2crbyte _day , Ack                                       ' dan
  I2crbyte _month , Ack                                     ' mesec
  I2crbyte _year , Nack                                     ' leto
  I2cstop
  _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
  _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
Return
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mato1111
Član
Član



Pridružen-a: Pet 28 Dec 2012 14:42
Prispevkov: 611
Aktiv.: 4.46
Kraj: Vrhnika

PrispevekObjavljeno: Sob Maj 14, 2016 10:11 am    Naslov sporočila:   Odgovori s citatom

Imam problem z UART komunikacijo dveh mikrokontrolerjev Atmega32.
RX in TX je povezan pravilno. Masa je tudi skupna. Pri obeh enak baud rate 2400 in enaka frekvenca kristala 3,6864MHz.
Če mikrokontroler posebej povežem z računalnikom in na terminalu simuliram ukaze drugega mikrokontrolerja deluje tako kot je treba. Vsak zase delujeta lepo ko pa ju povežem skupaj se nič ne dogaja Eh?
Prosim za kakšen nasvet
L.p. Mato
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.83
Kraj: Mengeš

PrispevekObjavljeno: Sob Maj 14, 2016 11:37 am    Naslov sporočila:   Odgovori s citatom

Kako pa imaš napisan program? Imaš sprejem izveden z interruptom (on urxc sprejem_telegrama) ali imaš serial konfiguriran kot "buffered"? Če samo občasno bereš inkey ni v redu, ker tako izgubljaš sprejete znake. Sam avr nima nobenega baferja (no, ima za en znak).
S terminalom poslušaj tisti kontroler, ki naj bi oddajal, če res to počne.
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.53
Kraj: Ljubljana

PrispevekObjavljeno: Sob Maj 14, 2016 11:38 am    Naslov sporočila:   Odgovori s citatom

Mato,
brez kode lahko samo ugibamo kje si ga polomil.
Kako sprejemaš podatek (inkey, witkey, input)??
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mato1111
Član
Član



Pridružen-a: Pet 28 Dec 2012 14:42
Prispevkov: 611
Aktiv.: 4.46
Kraj: Vrhnika

PrispevekObjavljeno: Sob Maj 14, 2016 5:15 pm    Naslov sporočila:   Odgovori s citatom

Z prekinitveno rutino od vilkota Mr. Green
Saj pravim da kontrolerja lepo delujeta ce vsakega posebej priklopim na racunalnik in podatke pisem na roke preko bray terminala.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3638
Aktiv.: 17.11

PrispevekObjavljeno: Sob Maj 14, 2016 7:15 pm    Naslov sporočila:   Odgovori s citatom

Ti si za hece, ja.

Prilepi oba programa.
Na koncu se bo ugotovilo, da oba MCU-ja samo čakata, da kaj prileti na RX, za začetek komunikacije mora biti pa vsaj eden dovolj nesramežljiv, pogumen in zgovoren, da vpraša tisti znameniti: "Živijo, kako si?"

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
mato1111
Član
Član



Pridružen-a: Pet 28 Dec 2012 14:42
Prispevkov: 611
Aktiv.: 4.46
Kraj: Vrhnika

PrispevekObjavljeno: Sre Sep 20, 2017 12:01 pm    Naslov sporočila:   Odgovori s citatom

No da malo obudim temo Mr. Green

Potrebujem kakšen nasvet.
Imam nek dolg string podatkov v katerem iščem številko ki bi jo rad zapisal v drugi string. Problem pa je da ta številka ni vedno na istem mestu in ni vedno enako dolga.
Primer kaj bi rad prepisal v drug string (podčrtano):
+CMGR: "REC UNREAD","+38651123456","","14/09/17,21:52:51+08"
+CMGR: "REC READ","+38651123456","","14/09/17,21:52:51+08"
+CMGR: "REC UNREAD","10086","","14/09/17,21:52:51+08"
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
frenki
Moderator
Moderator



Pridružen-a: Ned 23 Feb 2003 21:26
Prispevkov: 6540
Aktiv.: 29.45
Kraj: Ljubljana (JN76GB)

PrispevekObjavljeno: Sre Sep 20, 2017 1:30 pm    Naslov sporočila:   Odgovori s citatom

Če z instr() poiščeš prvo pojavljanje separatorja polja => "," <= , nato pa od tu dalje naslednje, boš dobil startno pozicijo in dolžino, ki jo z mid() potegneš ven?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
mato1111
Član
Član



Pridružen-a: Pet 28 Dec 2012 14:42
Prispevkov: 611
Aktiv.: 4.46
Kraj: Vrhnika

PrispevekObjavljeno: Sre Sep 20, 2017 6:06 pm    Naslov sporočila:   Odgovori s citatom

Hvala z malo igranja mi je uspelo Dancing
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 ... 35, 36, 37, 38  Naslednja
Stran 36 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: 48 dni


Powered by phpBB © 2001, 2005 phpBB Group