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 

mikroC
Pojdi na stran Prejšnja  1, 2, 3  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Highlag
Član
Član



Pridružen-a: Pet 23 Jan 2004 20:42
Prispevkov: 4034
Aktiv.: 18.17
Kraj: Črnuče

PrispevekObjavljeno: Sre Dec 16, 2009 9:44 am    Naslov sporočila:   Odgovori s citatom

Help si pogledal? Primeri kode, ki jih imaš nimajo nobenega takšnega primera?
Takšne stvari morajo biti izvedene tako kot so predvideli, drugače ne delujejo.
Očitno tvoja definicija ni ustrezna.

_________________
If at first you don't succeed, destroy all evidence that you tried.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
bungee
Član
Član



Pridružen-a: Pon 07 Mar 2005 18:49
Prispevkov: 1479
Aktiv.: 6.66
Kraj: Ljubljana

PrispevekObjavljeno: Sre Dec 16, 2009 11:22 am    Naslov sporočila:   Odgovori s citatom

nufan: Daj prilepi 5 vrstic kode pred 54 vrstico in 5 vrstic, ki sledi temu. Potem ti bomo lažje pomagali.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
NUFAN
Član
Član



Pridružen-a: Pon 05 Apr 2004 21:39
Prispevkov: 947
Aktiv.: 4.26
Kraj: Žalec

PrispevekObjavljeno: Sre Dec 16, 2009 5:03 pm    Naslov sporočila:   Odgovori s citatom

Iskal sem alternativo spodnjemu zapisu:

Koda:
bcf TRISB,0

Po premetavanju helpa in ostalih navodil, sem končno našel takšen zapis:

Koda:
TRISB.B0 = 0;

V helpu piše, da se lahko uporabi tudi F0 namesto B0, ampak prevajalnik tega ne prebavi. Ne vem zakaj ne?
V glavi programa sem definiral, da mi kjerkoli v programu najde DQREG zamenja z TRISB, BPIN z B0, DQ pa z PORTB.

Sedaj imam napisano takole in mi prevajalnik ne najde napak.

Koda:
#define BPIN B0       // Pin na katerega so priključeni senzorji
#define DQ PORTB         // Port in pin na katerega so priključeni senzorji
#define DQREG TRISA    // Register na katerega so priključeni senzorji

Koda:

void OW_Low()
{
  DQREG.BPIN = 0;        // 1-wire pin izhod
  DQ.BPIN = 0;              // 1-wire pin = 0
}

Torej moj problem je bil v tem v tistem B-ju pred številko pina.

Sicer pa v priponki prilagam celoten program.



Ow_Search.c
 Opis:

Download
 Ime datoteke:  Ow_Search.c
 Velikost datoteke:  10.07 KB
 Downloadano:  4 krat


_________________
Roke spadajo k telesu, ne k delu.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 19.74

PrispevekObjavljeno: Sre Dec 16, 2009 6:21 pm    Naslov sporočila:   Odgovori s citatom

V C imaš definirane funkcije za vhod/izhod in nič ne rabiš šarit po TRIS registru. Po nobenem registru pravzaprav...
Sicer mikro C ne poznam, ampak v CCS so definirane funkcije input(), output_low(), output_high(), output_bit(), output_toggle() in output_float(). Tule je verjetno kaj podobnega...

_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
bungee
Član
Član



Pridružen-a: Pon 07 Mar 2005 18:49
Prispevkov: 1479
Aktiv.: 6.66
Kraj: Ljubljana

PrispevekObjavljeno: Sre Dec 16, 2009 9:14 pm    Naslov sporočila:   Odgovori s citatom

Tisti F naj bi pomenil port F .... torej ali ima tvoj PIC port F ????


@Gumby ne na žalost MikroC ni tako lep kot CCS, ki je povsem pisan na kožo programerju Whistle
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
NUFAN
Član
Član



Pridružen-a: Pon 05 Apr 2004 21:39
Prispevkov: 947
Aktiv.: 4.26
Kraj: Žalec

PrispevekObjavljeno: Sre Dec 16, 2009 10:26 pm    Naslov sporočila:   Odgovori s citatom

bungee je napisal/a:
Tisti F naj bi pomenil port F .... torej ali ima tvoj PIC port F ????


Saj tudi ta B ne pomeni, da gre za port B Wink Za port A bi zgledalo tako:
Koda:

PORTA.B1 = 0;

_________________
Roke spadajo k telesu, ne k delu.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
bungee
Član
Član



Pridružen-a: Pon 07 Mar 2005 18:49
Prispevkov: 1479
Aktiv.: 6.66
Kraj: Ljubljana

PrispevekObjavljeno: Sre Dec 16, 2009 11:53 pm    Naslov sporočila:   Odgovori s citatom

Ups spregledal celo besedo d'oh!
Vrjetno B pomeni bit Rolling Eyes
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
xsyt
Član
Član



Pridružen-a: Sre 28 Maj 2008 22:19
Prispevkov: 1346
Aktiv.: 6.98
Kraj: Slov.Bistrica

PrispevekObjavljeno: Čet Dec 17, 2009 12:17 am    Naslov sporočila:   Odgovori s citatom

Imam proble s MikroCjem, in sicer noče prepoznati ANSEL in ANSELH ukazov, za izklop ADCja. Program je v bistvu sample program za LCD display, v library imam dodano ADC,LCD. Ne razumem, zakaj preprosto ne prepozna ok?

Koda:
                              // LCD module connections
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// End LCD module connections

char txt1[] = "mikroElektronika";
char txt2[] = "EasyPIC5";
char txt3[] = "Lcd4bit";
char txt4[] = "example";

char i;                              // Loop variable

void Move_Delay() {                  // Function used for text moving
  Delay_ms(500);                     // You can change the moving speed here
}

void main(){
  TRISB = 0;
  PORTB = 0xFF;
  TRISB = 0xff;
  ANSEL  = 0;                        // Configure AN pins as digital I/O
  ANSELH = 0;
  Lcd_Init();                        // Initialize LCD

  Lcd_Cmd(_LCD_CLEAR);                // Clear display
  Lcd_Cmd(_LCD_CURSOR_OFF);           // Cursor off
  Lcd_Out(1,6,txt3);                 // Write text in first row

  Lcd_Out(2,6,txt4);                 // Write text in second row
  Delay_ms(2000);
  Lcd_Cmd(_LCD_CLEAR);                // Clear display

  Lcd_Out(1,1,txt1);                 // Write text in first row
  Lcd_Out(2,5,txt2);                 // Write text in second row

  Delay_ms(2000);

  // Moving text
  for(i=0; i<4; i++) {               // Move text to the right 4 times
    Lcd_Cmd(_LCD_SHIFT_RIGHT);
    Move_Delay();
  }

  while(1) {                         // Endless loop
    for(i=0; i<8; i++) {             // Move text to the left 7 times
      Lcd_Cmd(_LCD_SHIFT_LEFT);
      Move_Delay();
    }

    for(i=0; i<8; i++) {             // Move text to the right 7 times
      Lcd_Cmd(_LCD_SHIFT_RIGHT);
      Move_Delay();
    }
  }
}



Capture.PNG
 Opis:
MikroC-sampleLCD
 Velikost datoteke:  251.15 KB
 Pogledana:  32 krat

Capture.PNG


Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Krampus
Član
Član



Pridružen-a: Pon 08 Sep 2008 13:07
Prispevkov: 1826
Aktiv.: 9.64

PrispevekObjavljeno: Čet Dec 17, 2009 9:28 am    Naslov sporočila:   Odgovori s citatom

Preberi datasheet od 877 in 887
Primer je za 887

_________________
Nisem ravno najbolj pameten na svetu, tu in tam pa imam kakšno idejo.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
NUFAN
Član
Član



Pridružen-a: Pon 05 Apr 2004 21:39
Prispevkov: 947
Aktiv.: 4.26
Kraj: Žalec

PrispevekObjavljeno: Čet Dec 17, 2009 10:36 am    Naslov sporočila:   Odgovori s citatom

bungee je napisal/a:
Vrjetno B pomeni bit Rolling Eyes

Kaj pa F?

_________________
Roke spadajo k telesu, ne k delu.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
xsyt
Član
Član



Pridružen-a: Sre 28 Maj 2008 22:19
Prispevkov: 1346
Aktiv.: 6.98
Kraj: Slov.Bistrica

PrispevekObjavljeno: Pon Feb 08, 2010 12:49 am    Naslov sporočila:   Odgovori s citatom

Mene zanima, kako bi recimo tole bolj elegantno napisal (s switch stavkom?);
Koda:

  for(;;)
  {
  if(ADC_Read(0) <= 0xFA)
  {
  PORTB  = 0b00010100;          //1
  }
  else
  {
      if(ADC_Read(0) <= 0x1F4)
      {
      PORTB  = 0b10110011;          //2
      }
      else
      {
          if(ADC_Read(0) <= 0x2EE)
          {
          PORTB  = 0b10110110;          //3
          }
          else
          {
              if(ADC_Read(0) <= 0x3E8)
              {
              PORTB  = 0b11010100;          //4
              }
              else
              {
              PORTB  = 0b11100110;          //5
              }
          }
      }
  }
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
bungee
Član
Član



Pridružen-a: Pon 07 Mar 2005 18:49
Prispevkov: 1479
Aktiv.: 6.66
Kraj: Ljubljana

PrispevekObjavljeno: Pon Feb 08, 2010 12:55 am    Naslov sporočila:   Odgovori s citatom

Glede na to da uporabljaš pogoj <= ne vrjamem, da bo šlo switch deluje na točne vrednosti.[/code]
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
xsyt
Član
Član



Pridružen-a: Sre 28 Maj 2008 22:19
Prispevkov: 1346
Aktiv.: 6.98
Kraj: Slov.Bistrica

PrispevekObjavljeno: Pon Feb 08, 2010 1:00 am    Naslov sporočila:   Odgovori s citatom

OK, saj ni nujno s switch stavkom. So pa vrednosti ADCja, ki da neko vrednost na 7-segment LED display.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
.
Neznanec
Neznanec



Pridružen-a: Pet 01 Okt 2004 1:17
Prispevkov: 1
Aktiv.: 0.00

PrispevekObjavljeno: Pon Feb 08, 2010 8:06 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
galex4
Član
Član



Pridružen-a: Tor 01 Apr 2008 18:27
Prispevkov: 459
Aktiv.: 2.36

PrispevekObjavljeno: Ned Feb 21, 2010 4:35 pm    Naslov sporočila:   Odgovori s citatom

kako iz celega števila pretvoriti na decimalko, za DS1820 imam naslednjo kodopisano v mikroBASIC-u

koda:

program One_WIRE_1

dim LCD_RS as sbit at RB4_bit
LCD_EN as sbit at RB5_bit
LCD_D4 as sbit at RB0_bit
LCD_D5 as sbit at RB1_bit
LCD_D6 as sbit at RB2_bit
LCD_D7 as sbit at RB3_bit
LCD_RS_Direction as sbit at TRISB4_bit
LCD_EN_Direction as sbit at TRISB5_bit
LCD_D4_Direction as sbit at TRISB0_bit
LCD_D5_Direction as sbit at TRISB1_bit
LCD_D6_Direction as sbit at TRISB2_bit
LCD_D7_Direction as sbit at TRISB3_bit

dim txt as char[9]
temp as word

main:

ADCON1 = %00000110
Lcd_Init()
Lcd_Cmd(_LCD_CLEAR)
Lcd_Cmd(_LCD_CURSOR_OFF)
Lcd_Out(1, 1, " Temperatura: ")

Lcd_Chr(2,13,178)
Lcd_Chr(2,14,"C")

while true

Ow_Reset(PORTE, 2)

Ow_Write(PORTE, 2, 0xCC)

Ow_Write(PORTE, 2, 0x44)

Delay_us(120)

Ow_Reset(PORTE, 2)

Ow_Write(PORTE, 2, 0xCC)

Ow_Write(PORTE, 2, 0xBE)

temp = Ow_Read(PORTE, 2)

temp = temp / 2

WordToStr(temp, txt)
Lcd_Out(2, 8, txt)
delay_ms(520)
wend
end.

ko če temp ne delim z 2 ima 1x večjo vrednost pri delitvi pa dobim celo število, na kak način pa dosežem tistih 0,5??

kakšne vrednosti sta tista 2 byta (LSB in MSB)iz katerih nato preračunamo realno vrednost?
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 -> Microchip PIC Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2, 3  Naslednja
Stran 2 od 3

 
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