микрочип училище с много видео и софтуер

микрочип училище с много видео и софтуер >>> link >>>> https://mu.microchip.com/




таймери в ПИК процесорите - урок 7

код за урока за таймерите в пик процесорите -

link here >>> http://karadev.net/basto/?dir=timer_pic1829

препоръчително използване на NOTEPAD++ с настройка за разпознаване на С/С++ код за да можете да видите различните регистри, променливи и другите особенности на езика за програмиране на пик процесорите.

симулацията е в програмата протеус, версия последна има я в нета, или си начертайте собствена схема според графиките в предните уроци. успех

========================= MAIN.C =============================

#include <xc.h>
//#include <pic16f1829.h>
#include "initcpu.h"
#include "main.h"
#include "fuse.h"
#include "timers.h"            // here is interrupt function
//#include "lcd.h"            // for later use in this project

void main(void)
{    init_cpu();
        //PORTB = 8;
    while(1)
    {    
    // increase Postscaler value 0<>15
    if(T2OUTPS_plus == 1)
        { __delay_ms(350); //delay for button
            T2CONbits.T2OUTPS++;
             // sum + 16 for start count from RB4
            PORTB = PORTB + 16; // indicator plus + 1
            if(T2CONbits.T2OUTPS == 0)
            { PORTB = 0;} // null indicator
        }
    
     // decrease Postscaler value 0<>15
    if(T2OUTPS_minus == 1)
        {__delay_ms(350);//delay for button
            T2CONbits.T2OUTPS--;
            PORTB--; // indicator minus - 1
            if(T2CONbits.T2OUTPS == 0)
            { PORTB = 0; } // null indicator
        }
    
    // increase Prescale value 0<>3
    if(T2CKPS_plus == 1)
        {__delay_ms(350);//delay for button
            T2CONbits.T2CKPS++;PORTA++;
            if(T2CONbits.T2CKPS == 0)
            {
            PORTA = 0;    
            }
        }
} // END WHILE


} // END MAIN

========================= TIMERS.C =============================
функцята която обработва прекъсвате е предварително дефининирана в ХС8 и трябва само да я извиката както е показано в кода по-долу. вътре във функцията нулирате флага на таймера и след това изпълнявате командите който ви трябват. колкото и софтуер да напишете в таймера честотата на който  и да използвате таймер няма да се промени. което е целта на задачата.

========================= TIMERS.C =============================

#include <xc.h>
#include "main.h"
#include "timers.h"

unsigned char flag_timerirq = 0;

void __interrupt() timer2(void)
{    PIR1bits.TMR2IF = 0;
    //======================
    // check on scope for frequency VARIANT 1
    //notused6 = 1; //PORTAbits.RA5
    //notused6 = 0; //PORTAbits.RA5
    //======================
    // check on scope for frequency VARIANT 2
    if(flag_timerirq == 0) // full period freq
            {                    // multypile by 2 for
            LATA5 = 1;        // real frequency
                flag_timerirq = 1;
            }
        else
            {    LATA5 = 0;
                flag_timerirq = 0;
            }


} // END OF INTERRUPT TIMER2

========================= INITSPU.C =============================

стартирането, инициализацията на таймера и настройката на делителите на таймера се правят във този файл. промяната на стойностите на делителите може да направите където и да е в софтуера, стига това да ви върши работа. четете внимателно пдф файловете кои регистри са само четене и кои може и да бъдат променяни ако се налага от смисъла на приложението.

========================= INITSPU.C =============================


#include <xc.h>
//#include <pic16f1829.h>
#include "main.h"

void init_cpu(void)
{
OSCCON = 0x72; // 4F - 1Mhz // 6A - 4Mhz
                // 0x72 - 8Mhz // 0x7A - 16Mhz
OPTION_REG = 0b10000000; // TIMER0 REG // pull up is DISABLE

CM1CON0 = 0b00000000;
CM1CON1 = 0b00000000;

CM2CON0 = 0b00000000;
CM2CON1 = 0b00000000;
                
ADCON0 = 0b00000000;
ADCON1 = 0b00000000;

CLKRCON = 0b00000000; // slew rate is OFF
MDCON = 0b00000000; // slew rate is OFF

ANSELA = 0b00000000;
TRISA  = 0b00001000; // /MCLR = 1 always
PORTA = 0x00;
WPUA = 0x00;

ANSELB = 0b00000000;
TRISB  = 0b00000000;
PORTB = 0x00;
WPUB = 0x00;

ANSELC = 0b00000000;
TRISC  = 0b00000111;
PORTC = 0x00;
WPUC = 0x00;

MDMSODIS = 1; // logic cell disables

GIE = 1 ; // enable general interrupts FOR ALL
PEIE = 1; // enable peripherial interrupts FOR ALL
TMR2IE = 1; // // enable TIMER2 interrupts
// set bits from pdf for timer prescaler and post scaller
T2CON = 0b00000000; // and timer2 on / off
T2CONbits.T2OUTPS = 0; //0-15 // Timerx Output Postscaler Select bits
T2CONbits.T2CKPS = 0; //0-3  // Timer2-type Clock Prescale Select bits
T2CONbits.TMR2ON = 1; // enable timer2 to start


}
========================= INITSPU.C =============================

Raspberry Pi + Apache + MySQL + PHP (LAMP Server) - урок 4

Инсталирайте phpMyAdmin на Raspberry Pi

оригинал линк >>>

https://randomnerdtutorials.com/raspberry-pi-apache-mysql-php-lamp-server/

phpMyAdmin е безплатен софтуерен инструмент, написан на PHP, предназначен да се справи с администрирането на MySQL с помощта на уеб интерфейс.
За да инсталирате phpMyAdmin на Raspberry Pi, въведете следната команда в терминала:
$ sudo apt install phpmyadmin -y

Инсталационната програма на PHPMyAdmin ще ви зададе няколко въпроса. Ще използваме dbconfig-common.
 
Когато бъдете подканени, изберете Apache2 и натиснете клавиша Enter
 
Конфигуриране на phpmyadmin? Добре
 
Конфигуриране на база данни за phpmyadmin с dbconfig-common? Да
 
Въведете паролата си и натиснете OK
 
Активирайте разширението PHP MySQLi и рестартирайте Apache2, за да влязат в сила промените:
$ sudo phpenmod mysqli
$ sudo service apache2 restart

 
Когато отидете на вашия RPi IP адрес, последван от / phpmyadmin (в моя случай http://192.168.1.86/phpmyadmin), или localhost/phpmyadmin вероятно ще видите страницата за грешка „Не е намерено“ във вашия браузър:

Ако случаят е такъв, ще трябва да преместите папката phpmyadmin в / var / www / html, изпълнете следващата команда:
$ sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
 
$ cd /var/www/html $ ls – команда в директория /var/www/html
pi@raspberrypi:/var/www/html $ ls - или този изглед изпълнете ls
phpmyadmin – резултат

Презаредете вашата уеб страница http://192.168.1.86/phpmyadmin, трябва да видите страницата за вход за уеб интерфейс phpMyAdmin
 
Въведете дефинираното си потребителско име (то трябва да бъде Потребителско име = root) и паролата, която сте дефинирали по време на инсталацията. Натиснете бутона Go, за да влезете.
 
Ако не се получи и ви показва грешка, пробвайте със username – admin, password – паролата която създадохте за админ потребителя в командния ред.
 
Най-вероятно няма да ви позволи да влезете с root потребителя, за това изпълнете по-горните команди за създаване на admin потребител с парола която давате по време на същата команда в командния ред.


Натиснете бутона Go, за да влезете. Зарежда се нова страница:

Това е! Вашата платка Raspberry Pi е подготвена с LAMP сървър: Apache2, MySQL, PHP. Също така решихме да включим phpMyAdmin в тази инсталация за по-лесно управление на базата данни чрез уеб интерфейс. Важно е в лявото меню да виждате списъка с базите данни които са показани на графиката, ако те не са показани значи нещо не е наред.
 
Незадължителна стъпка (но препоръчително)
За да управлявате вашите уеб страници, трябва да промените правата за достъп до вашата /var/www/html/ папка. За да направите това, изпълнете следните команди:

$ ls -lh /var/www/
$ sudo chown -R pi:www-data /var/www/html/
$ sudo chmod -R 770 /var/www/html/
$ ls -lh /var/www/

 
След като изпълните тези команди, ще видите нещо, както следва:

Raspberry Pi + Apache + MySQL + PHP (LAMP Server) - урок 3

Инсталирайте MySQL (MariaDB сървър) на Raspberry Pi

оригинал линк >>> https://randomnerdtutorials.com/raspberry-pi-apache-mysql-php-lamp-server/

MySQL (често произнасяно My S – Q – L) е популярна релационна база данни с отворен код. Инсталирайте пакетите MySQL Server (MariaDB Server) и PHP-MySQL, като въведете следната команда:
 
$ sudo apt install mariadb-server php-mysql –y
$ sudo service apache2 restart
 
След като инсталирате MySQL (MariaDB Server), препоръчваме да изпълните тази команда, за да защитите вашата инсталация на MySQL:
 
$ sudo mysql_secure_installation
 
Това трябва да се появи във вашия прозорец на терминала:


Ще бъдете помолени да въведете текущата парола за root (въведете сигурна парола): натиснете Enter
 
Въведете Y и натиснете Enter, за да зададете парола за корен
 
Въведете парола в подканата Нова парола: и натиснете Enter. Важно: запомнете тази root парола, тъй като ще ви е необходима по-късно
 
Въведете Y, за да премахнете анонимни потребители
 
Въведете Y, за да забраните дистанционното влизане в root
 
Въведете Y, за да премахнете тестовата база данни и достъп до нея
 
Въведете Y, за да презаредите таблици с привилегии сега
 
Когато инсталацията приключи, ще видите съобщението: „Благодаря, че използвате MariaDB!“.

Ако имате грешка при влизане в phpMyAdmin, може да се наложи да създадете нов потребител за влизане. Тези команди ще създадат нов потребител с име (admin) и парола (your_password).
Напишете следващата команда като влезете като root с паролата за root потребителя която сте дали при инсталация на raspberry линукса.
 
тази команда create user admin@localhost identified by 'your_password';
ще създаде нов потребител с нова парола за логин в уеб интерфейса на PHPMYADMIN, това така трябва да бъде за да можете да управлявате като админ цялата система от всички бази данни създадени в PHPMYADMIN уеб интерфейса или през командния ред след като сте влезли в mysql със първата команда.

Бази данни и потребители за тях както и цяла система може да бъде създадена през командния ред, но за да е по удобно инсталираме PHPMYADMIN. Заместете your_password с истинската парола която ще използвате за да влезете във уеб интерфейса на PHPMYADMIN. Във логин менюто ще може да влезете като потребител admin с парола която сте поставили на мястото на your_password
 
$ sudo mysql --user=root --password
> create user admin@localhost identified by 'your_password';
> grant all privileges on *.* to admin@localhost;
> FLUSH PRIVILEGES;
> exit;

запомнете че тази команда създава всеки път потребител с администраторски права във PHPMYADMIN системата. за да създадете база данни и потребител за нея има други команди които ще разгледаме по-късно.

Raspberry Pi + Apache + MySQL + PHP (LAMP Server) - урок 2

Инсталирайте PHP на Raspberry Pi

оригинал линк >>> https://randomnerdtutorials.com/raspberry-pi-apache-mysql-php-lamp-server/

PHP е скриптов език от страна на сървъра. PHP (Hypertext Preprocessor) се използва за разработване на динамични уеб приложения. PHP файл съдържа маркери <? Php…?> и завършва с разширението „.php“.

когато браузърът зареди някаква *.php страница, вие виждате само резултата от php кода, но не и самият php код, което е целта на цялата процедура. php кода може и генерира html код, който представлява дизайна на страницата която виждате. Също има връзка към базите данни, връзка към линукс операционната система с изпълнение на директни команди във bash конзолата и много други.

php е на основата на С/С++ само че работи от страна на сървъра със задължително инсталиране на php сървърен софтуер, който да разчита командите от php страниците и да го изпълнява и показва резултата във всеки един браузър били на смартфон или на компютър или лаптоп.
За да инсталирате PHP на Raspberry Pi, изпълнете:

$ sudo apt install php –y
 
създайте PHP скрипт за тестване на инсталацията като използвате текстов редактор във конзола или във графична среда да създадете сления файл със име и разширение точно определено за да може php софтуерния сървър да покаже съдържанието на вашият код.
 
Файлът трябва да се запише във /var/www/html със име примерно info.php, като съдържанието на този файл трябва да бъде следната малка команда която показва информация за php сървъра : <?php phpinfo(); ?>

След това във браузъра заредете следната команда : localhost/info.php
може да използвате и локалното IP на raspberry примерно 192.168.1.5/info.php
 
по принцип при инсталация на raspberry локалното IP се задава от DHCP сървъра и за да разберете какъв e IP адреса може да използвате командата
ifconfig, която ще ви даде информация за мрежовите връзки на самото raspberry с резултат

Както се вижда от графиката локалното IP в този случай е 192.168.1.5, следователно за да заредите info.php файла във браузъра трябва да напишете 192.168.1.5/info.php
След като натиснете ентер трябва да се покаже следния резултат във браузъра

И накрая, рестартирайте Apache2:

$ sudo service apache2 restart
 
В директорията на Apache2 сега има два файла, единият е index.html, другият е info.php. ако обаче имате два файла със име index.* да знаете че файла със разширение html е със по-висок приоритет и когато в браузъра заредите командата localhost или напишете локалното IP ще се зареди съдържанието на index.html файла.

Файла със разширение *.php трябва задължително да бъде указан след наклонената черта за да знае браузъра че точно този файл трябва да зареди. localhost/info.php или localhost/index.php

нов урок - БЕЗПЛАТЕН ЗА ПРОЕКТИРАНЕ НА ПЕЧАТНИ ПЛАТКИ
линк на главното меню - печатни платки