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
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.
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” 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
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š.
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.
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