|
|
(8 medziľahlých úprav od jedného ďalšieho používateľa nie je zobrazených) |
Riadok 1: |
Riadok 1: |
− | Tester logických obvodov 7400 a 7493. Diagnostický report cez sériové rozhranie
| + | ToDo |
− | | |
− | | |
− | Záverečný projekt predmetu MIPS / LS2023 - '''Erik Szegi'''
| |
− | | |
− | | |
− | == Zadanie ==
| |
− | | |
− | Tester logických obvodov- testovali sme, ako rýchlo dokážeme stlačiť tlačidlo po bliknutú kontrolky LED.
| |
− | [[Obrázok:ard.jpg|400px|thumb|center|Vývojová doska ACROB.]]
| |
− | | |
− | '''Literatúra:'''
| |
− | * [http://ap.urpi.fei.stuba.sk/sensorwiki/index.php/Acrob_technical_description Dokumentácia k doske Acrob]
| |
− | * [http://www.humanbenchmark.com/tests/reactiontime/index.php Vyskúšajte si zmerať reakciu on-line]
| |
− | | |
− | | |
− | __TOC__
| |
− | | |
− | == Analýza a opis riešenia ==
| |
− | | |
− | Najprv sme pripojili LCD displej s tlačidlom a LED diódou
| |
− | | |
− | [[Súbor:schema.png|400px|thumb|center|Schéma zapojenia LCD displeja.]]
| |
− | | |
− | | |
− | === Algoritmus a program ===
| |
− | | |
− | Algoritmus programu je....
| |
− | | |
− | | |
− | <tabs>
| |
− | <tab name="AVR C-code"><source lang="c++" style="background: LightYellow;">
| |
− | #include <avr/io.h>
| |
− | | |
− | #define F_CPU 16000000UL
| |
− | #include <avr/io.h>
| |
− | #include <avr/interrupt.h>
| |
− | #include <util/delay.h>
| |
− | #include "lcd_ch.h"
| |
− | | |
− | #define SW1 PD6 // tlacitko
| |
− | #define LED1 PD7 // LED
| |
− | | |
− | #define set_bit(ADDRESS,BIT) (ADDRESS |= (1<<BIT))
| |
− | #define clear_bit(ADDRESS,BIT) (ADDRESS &= ~(1<<BIT))
| |
− | | |
− | #define LED1_ON set_bit(PORTD,LED1) //zapni LED
| |
− | #define LED1_OFF clear_bit(PORTD,LED1) //vypni LED
| |
− | | |
− | static volatile int M_Sec = 0; //integer pocíta v milisekundách
| |
− | int Random_Number = 0; //generuje random cislo
| |
− | int Rychlost = 0; //cas rychlost
| |
− | | |
− | //**spustenie casovaca**//
| |
− | void TIMER_START(void){
| |
− | TCNT1 = 0xFFF0;
| |
− | TCCR1B = 0b00000101;
| |
− | TIMSK1 = (1<<TOIE1);
| |
− | sei();
| |
− | TCCR0A = (1 << COM0A0)
| |
− | | (1 << WGM01);
| |
− | TCCR0B = (1 << CS02);
| |
− | }
| |
− | | |
− | //** output a input port**//
| |
− | void Start(void){
| |
− | DDRD =0b10000000;
| |
− | PORTD =0b01000000;
| |
− | }
| |
− | | |
− | | |
− | int main(void)
| |
− | {
| |
− | Start();
| |
− | ini_ports();
| |
− | lcd_init();
| |
− |
| |
− | while(1){
| |
− |
| |
− | if(bit_is_set(PIND,LED1)){
| |
− | goto jump1;
| |
− | }
| |
− |
| |
− | Random_Number=rand(); //generovanie random cisiel pomocou preddefinovanej funkcie
| |
− | _delay_ms(200); //Kvôli rýchlej generovanie čakáme, aby led nebliklo veľmi rýchlo
| |
− |
| |
− | if ((Random_Number>1) && (Random_Number<1500)){
| |
− | PORTD |= (1<<LED1);
| |
− | M_Sec=0;
| |
− | def_Clear_spec_znaky();
| |
− | TIMER_START();
| |
− |
| |
− | jump1:
| |
− | if ( !(PIND & (1<<SW1)) ){ // Ak tlacitko je stlacene tak vypni led
| |
− | Rychlost = M_Sec;
| |
− | char riadok[]= {""};
| |
− | sprintf(riadok,"%d ms",Rychlost);
| |
− | def_Clear_spec_znaky();
| |
− | lcd_puts("Rychlost:");
| |
− | lcd_command(0xC0+5);
| |
− | lcd_puts(riadok);
| |
− | PORTD &= ~(1<<LED1);
| |
− | }
| |
− |
| |
− | }
| |
− | }
| |
− | }
| |
− | | |
− | ISR (TIMER1_OVF_vect)
| |
− | {
| |
− | char riadok[]= {" "};
| |
− | TCNT1 = 0xFFF0;
| |
− | M_Sec++;
| |
− |
| |
− | }
| |
− | | |
− | </source></tab>
| |
− | <tab name="lcd_ch.h"><source lang="c++" style="background: LightYellow;">
| |
− | lcd_ch.h
| |
− | unsigned int adc_read(char a_pin);
| |
− | </source></tab>
| |
− | </tabs>
| |
− | | |
− | Pridajte sem aj zbalený kompletný projekt, napríklad takto (použite jednoznačné pomenovanie, nemôžeme mať na serveri 10x ''zdrojaky.zip'':
| |
− | | |
− | Zdrojový kód: [[Médiá:projektMenoPriezvisko.zip|zdrojaky.zip]]
| |
− | | |
− | === Overenie ===
| |
− | | |
− | Na používanie našej aplikácie stačia dve tlačítka a postup používania je opísaný v sekcii popis riešenia.
| |
− | Na konci uvádzame fotku záverečnej obrazovky pred resetom. Vypísaný je tu priemerný čas a najlepší čas.
| |
− | | |
− | [[Súbor:fotka.jpg|400px|thumb|center|Aplikácia.]]
| |
− | | |
− | '''Video:'''
| |
− | <center><youtube>_l02MBu41n0</youtube></center>
| |
− | | |
− | Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.
| |
− | | |
− | [[Category:AVR]] [[Category:MIPS]]
| |