Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
et:competition:cart:software [2012/04/12 11:32] raivo.sellet:competition:cart:software [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 2: Line 2:
  
 Järgnev näide ei kasuta Kodulabori teegi alalisvoolu mootorite kiiruse juhtimise teeki, vaid on tehtud riistvaralise PWM väljundi peale, mis on Mootori moodulil ühendatud servo pistikutesse. Järgnev näide ei kasuta Kodulabori teegi alalisvoolu mootorite kiiruse juhtimise teeki, vaid on tehtud riistvaralise PWM väljundi peale, mis on Mootori moodulil ühendatud servo pistikutesse.
 +
 +
 +====== Lihtsustatud näide ======
 +Lihtsustatud näide suunab UH anduri lugemi otse mootori kiiruseks.
 +
 +{{:software:codes:uh_anduri_yhendus.jpg?250|}}{{:software:codes:mootori_yhendus.jpg?250|}}
 +
 +<code c>
 +//*****************************************************************************
 +// Vajalik riistvara:
 +// 1. Kodulabori kontrollermoodul ATmega2561
 +// 3. Kodulabori mootorite moodul ja andurite moodul või Kombo moodul
 +// 4. UH andur
 +// 5. Alalisvoolumootor
 +//
 +// Kirjeldus:
 +// Programm seadistab riistvaralise PWM-i kasutama servopistikuid. Ultraheli anduri näit antakse otse
 +// mootori kiiruseks. Kiiruse vahemik 0-255
 +//
 +// Kasutamine:
 +// Ühenda moodulid kokku. Ühenda UH andur Viiku ADC3 / PF3
 +// Ühenda mootori maa Servo pistiku GND viiguga ja mootori juhtkaabel servo pistiku signaali viiguga.
 +// Servo pistiku keskmine viik (+5 V) jääb ühendamata.
 +//
 +// Autor: Heiko Pikner, Raivo Sell
 +//
 +// Compiler: AVR-GCC
 +// Chip type: Atmega2561
 +//*****************************************************************************
 +//#include <stdio.h>
 +#include "homelab/pin.h"
 +#include "homelab/delay.h"
 +#include <homelab/module/sensors.h>
 +
 +#define PWM_PERIOD      (F_CPU / 8 / 5000)
 +
 +// Kasutusel servopistik. Protsessori viigud PB5 ja PB6
 +static pin servo_pins[2] =
 +{
 + PIN(B, 5), PIN(B, 6)
 +};
 +
 +void hv_pwm_init(unsigned char index)
 +{
 + // Seadista PWM viik väljundiks.
 + pin_setup_output(servo_pins[index]);
 +
 + // Seadista timeri kontrollregister
 + // Clear OUTA and OUTB on compare match
 + // Fast PWM mode with ICR = TOP
 + // Prescaler 8
 + timer1_init_fast_pwm(
 + TIMER1_PRESCALE_8,
 + TIMER1_FAST_PWM_TOP_ICR,
 + TIMER1_FAST_PWM_OUTPUT_CLEAR_ON_MATCH,
 + TIMER1_FAST_PWM_OUTPUT_CLEAR_ON_MATCH,
 + TIMER1_FAST_PWM_OUTPUT_DISABLE);
 +
 + // TOP period
 + timer1_set_input_capture_value(PWM_PERIOD);
 +}
 +
 +
 +//
 +// PWM väärtuse muutmine
 +// index - Servo pins 0-1.
 +// position 0-255. PWM value.
 +//
 +void hv_pwm_value(unsigned char index, unsigned int value)
 +{
 + switch (index)
 + {
 + case 0:
 +
 + timer1_set_compare_match_unitA_value(value);
 + if(OCR1A == 0)
 + {
 + DDRB &= ~(1 << DDB5);
 + }
 + else
 + {
 +   DDRB |= (1 << DDB5);
 + }
 +
 +
 + break;
 +
 + case 1:
 + timer1_set_compare_match_unitB_value(value);
 + if(OCR1B == 0)
 + {
 + DDRB &= ~(1 << DDB6);
 + }
 + else
 + {
 +   DDRB |= (1 << DDB6);
 + }
 +
 + break;
 + }
 +}
 +
 +//
 +// Põhiprogramm
 +//
 +int main(void)
 +{
 + // UH anduri viik
 + pin pin_trigger_echo = PIN(F, 3);
 + // Anduriplaadi väliste andurite viik
 + pin sensors = PIN(G, 0);
 + pin_setup_output(sensors);
 + pin_set(sensors);
 + // Mootori seadistamine
 + hv_pwm_init(0);
 +
 + // Lõputu tsükkel
 + while (true)
 + {
 + // UH anduri mõõtetulemuse (cm) suunamine mootori kiiruseks (0-255)
 + //Väärtus on korrutatud läbi 10-ga, seegamax kiirusele vastab 2,55 m
 + hv_pwm_value(0, ultrasonic_measure_srf05(pin_trigger_echo)*10);
 + }
 +}
 +</code>
 +
 +
 +
 +
 +
 +
 +====== Keerukam näide ======
  
 Failid pakituna projektiks: Failid pakituna projektiks:
-  * {{:software:codes:uh_andur.rar| AVR Studio}} +  * {{:software:codes:uh_andur_eclipse.zip| Eclipse projekt}}
-  * {{:software:codes:uh_andur_eclipse.zip| Eclipse}}+
 ===== Peaprogramm - main.c ===== ===== Peaprogramm - main.c =====
  
et/competition/cart/software.1334230345.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0