|
|
(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]]
| |