mikroC pro PIC - vaše zkušenosti

Zdravím
na tomto odkazu
youtube.com/watch?v=c5SsN5Rz … re=related je názorné video s prací v mikroc pro PIC zajímá mě vaše zkušenosti a postřehy na tento překladač? a za druhé co je zač ten PIC simulátor? díky

:arrow_right: administrator: přejmenováno z "mikroC pro PIC"

Osobne by som odporucal nastroje od Microchipu. Integracia s MPLAB je fajn, tak ako pravidelne updaty od vyrobcu kremiku.
Ako kompilator pre 8-bity je to potom MCC18, jeho free verzia nie je obmedzna na velkost kodu, na rozdiel od Mikro C, ktory je - ktory ma toto, dost neprijemne, obmedzenie.
MCC18 funguje len pre PIC18. Pre PIC16 Microchip nikdy nenapisal kompilator a asi vedeli preco - architektura PIC16 je pre C kompilatory uplne nevhodna. To samozrejme neznamena, ze sa nan neda napisat nejaky okripleny kompilator, ale neodporucam ich pouzivat, lebo clovek velmi rychlo narazi na jeho limity.

Já docela rád používám mikroC. Jsou tam integrovaný knihovny na spoustu periférií. Za pár minut rozběhám LCD displej, DS18b20 teplotní čidla, komunikace USART, I2C, OneWire, RS485, CAN, externí paměti, ošetření zákmitů tlačítek, RTC atd. Opravdu je to ve chvilce naprogramovaný a mohu si s tím hrát a tím poznávat veškěré možnosti s tím spojené. ALE je tu omezení - ještě nevím jak si knihovny upravit podle sebe. Nevím jestli vůbec jde(Máte někdo zkušenosti?). Navíc se ve free licenci mohou kompilovat pouze malé programy nepřesahující určitou velikost(teď nevím kolik) Ale jinak mě to moc pěkně zavedlo do tajů programování v C.

Zdravím
Já se teď pokouším s těch příkladů co jsou v nápovědě ale pro jiný typ konkrétně PIC16F887 to upravit na PIC16F628A a to příklad sound


void Tone1() {
  Sound_Play(659, 250);   // Frequency = 659Hz, duration = 250ms
}

void Tone2() {
  Sound_Play(698, 250);   // Frequency = 698Hz, duration = 250ms
}

void Tone3() {
  Sound_Play(784, 250);   // Frequency = 784Hz, duration = 250ms
}

void Melody() {           // Plays the melody "Yellow house"
  Tone1(); Tone2(); Tone3(); Tone3();
  Tone1(); Tone2(); Tone3(); Tone3();
  Tone1(); Tone2(); Tone3();
  Tone1(); Tone2(); Tone3(); Tone3();
  Tone1(); Tone2(); Tone3();
  Tone3(); Tone3(); Tone2(); Tone2(); Tone1();
}

void ToneA() {
  Sound_Play( 880, 50);
}
void ToneC() {
  Sound_Play(1046, 50);
}
void ToneE() {
  Sound_Play(1318, 50);
}

void Melody2() {
  unsigned short i;
  for (i = 9; i > 0; i--) {
    ToneA(); ToneC(); ToneE();
  }
}

void main() {

  ANSEL  = 0;                        // Configure AN pins as digital
  ANSELH = 0;
  C1ON_bit = 0;                      // Disable comparators
  C2ON_bit = 0;
  
  TRISB  = 0xF8;                     // Configure RB7..RB3 as input

  Sound_Init(&PORTC, 3);
  Sound_Play(880, 1000);             // Play sound at 880Hz for 1 second

  while (1) {
    if (Button(&PORTB,7,1,1))        // RB7 plays Tone1
      Tone1();
    while (RB7_bit) ;                // Wait for button to be released

    if (Button(&PORTB,6,1,1))        // RB6 plays Tone2
      Tone2();
    while (RB6_bit) ;                // Wait for button to be released

    if (Button(&PORTB,5,1,1))        // RB5 plays Tone3
      Tone3();
    while (RB5_bit) ;                // Wait for button to be released

    if (Button(&PORTB,4,1,1))        // RB4 plays Melody2
      Melody2();
    while (RB4_bit) ;                // Wait for button to be released

    if (Button(&PORTB,3,1,1))        // RB3 plays Melody
      Melody();
    while (RB3_bit) ;                // Wait for button to be released
  }
}

ale není mi jasné jak se začleňují do toho projektu knihovny? díky za pomoc.

Otevři panel Library a tam zaškrtni knihovny, které chceš v projektu používat. Také je důležité zkotrolovat existenci a správnost registrů ANSEL, ANSELH, i ty dva bity atd. U jiných typů procesorů je možné, že se tyto registry a bity nazývají jinak.

Jsi v C. Za posledních 40 let se ohledně vkládání knihoven vůbec nic nezměnilo. Prostě vlož hlavičkovej soubor pomocí “#include”.

tady je pokus který mě funguje -prosím zchovívavost za to “video” díky
youtube.com/watch?v=gwLQ85GrF1M

Zdravím
Mě to pořád nedá spát kde si prohlédnu zdrojáky jednotlivých knihoven? dal jsem hledat *.h, nebo *.c ale konkrétně na ten UART kde bych si potřeboval změnit piny TX,RX z PIC16F887 na PIC16F628A jak se to řeší u toho příkladu harwérově nebo softwerově? nebo to se provádí ta změna automaticky? o PIC16F628A o tom vím že obsahuje hadware UART díky za pomoc

Zatím netuším jak se dají číst nebo měnit obsah knihoven, ale to co vím je, že se to automaticky přenastavý na výstupy daného kontroléru. Takže stačí při zakládání projektu zvolit daný kontrolér a pak už jen volně používat knihovny. Teď jsem si vzpoměl, že se dají projekty prohlížet v asembler kódu. Project->View Assembly. Nevím ale jestli provedené změny mají účinek na program.

for notik: na jiném fóru jsem se dozvěděl že zdrojáky knihoven jsou dostupné jen v placené verzi, další věc jak si tak "hraji " s tím mikroC PRO for PIC tak zkouším různé příklady a nechce se mi to hned “vypalovat” do čipu tak výslednou kompilaci převedu do MPLAB IDE v7.41 a tam si snažím odsimulovat a proto potřebuji tentokrát vědět který registr v PIC16F628A povoluje periferii USART? abych si jej mohl pohlídat mám sice dataset tohoto konkrétního mcu ale “nechce si na to strávit zbytek života” :slight_smile: díky za pomoc

pokud se tomu chces venovat tak ti asi nic jinyho nezbide ! my Ti zas nechceme do konce zivota porad radit s otazkama na ktere se odpoved bezne nachazi v DS :wink:

Povolení modulu USART:
registr RCSTA bit SPEN
1 = sériový port je zapnut (vývody RB1/RX/DT a RB2/TX/CK jsou ovládány výhradně pomocí USART)
0 = sériový port je vypnut

Jinak souhlasím s MiloPS3, bez čtení datasheetu se asi neobejdeš.

Beru spět uznal jsem že je to nemístné nebudu si zahrávat s vaší dosavadní a doufám i budoucí vstřícností za kterou děkuji.

Našel jsem ještě lepší simulátor pro mcu ale i pro ostatní běžné součástky. Lehce se připojí LCD, klávesnice, osciloskop, zobrazovače, komunikace s ostatními prvky atd. Navíc po nasimulování a odzkoušení je možné přímo vytvořit návrhy desek plošných spojů. Jmenuje se Proteus ISIS. Vřele doporučuji a případně mohu pomoci se stažením. Najděte si o něm více na youtube.

To je všechno dobré ale jistě to bude mít nějaké háčky v podobě různých omezeních ve free verzi a to jsou jaká?díky

No tak to nevím. Mám plnou verzi. Je několik způsobů jak ji získat, třeba prohledat net :wink:

Nie, je len jeden sposob - kupit si to.

Samozrejme, nepochybujem o tom, ze pokial sa chvalis svojou plnou verziou, tak si si ju poctivo kupil za plnu cenu.

Zdravím
Především vám všem přeji hezké a svaté pro křesťany (do nich se taky počítám )a pro ostatní bohaté vánoce a mám dotaz na Proteus ISIS kde si mohu stáhnout demo verzi nebo něco takového nebo kolik stojí plná verze ?a popřípadě odkaz na domovskou stránku tohoto programu díky

Zkus pohledat tady. Je tam i demo.

Při té simulaci mě to hází toto co s tým? díky