Projekte
mlade
zusammen_v4_1
ultraschall.c
Projekte
Forum
Doku
Öffentliche Projekte
Startseite
Beispielprogramme
Projekte von anderen
Welcome
Username
Passwort
Eingeloggt bleiben
Zugangsdaten vergessen?
Registrieren
Projektverwaltung
⇨ Please choose! ⇦
——————————————————
✎ Create new project...
★ Browse existing projects...
——————————————————
⚬ MotorTest#1
⚬ C Tutorial 8#1
⚬ NIBO2 C Project#1
⚙ C Tutorial 15#1
⚬ 2010_11_18_el_test001#1
zusammen_v4_1
compass.c
compass.h
fahren.c
fahren.h
globals.c
globals.h
gyro.c
gyro.h
interpret...befehle.c
interpret...befehle.h
main.c
TWIlib.c
TWIlib.h
uart.c
uart.h
ultraschall.c
ultraschall.h
werkzeuge.c
werkzeuge.h
Project details
Compiler settings
Nachrichten
Sie sind nicht eingeloggt.
Neuigkeiten
★
NiboRoboLib 3.6
2017-01-17: Neue Version 3.6
★
NiboRoboLib 3.4.1
2016-04-16: Neue Version 3.4.1
★
Coding Tutorial
2015-11-22: Jetzt auch für den NIBO burger!
Site-Statistic
7430 private projects
378 public projects
16178470 lines compiled
58188 builds
NIBO
@
zusammen_v4_1/ultraschall.c [read only]
#include <nibobee/robo.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include "uart.h" #include "globals.h" #define temp 65535 void us_messen (uint16_t *entf){ // uart_puts("us_messen()\n"); // ADC abschalten uint8_t adcsra_bkp=ADCSRA; //ADCSRA &= ~(1<<ADEN); ADCSRA=0; // ADC abschalten für normalen Betrieb an PortC time=0; // temp=65535; DDRC &= ~(1<<2); // PortC Pin2 als Input PORTC &= ~(1<<2); // PortC Pin2 Pull-Up aus DDRA |=(1<<2); // PortA Pin2 als Output PORTA |=(1<<2); delay (100); // uart_puts("vor Schrei abschalten\n"); PORTA &=~(1<<2); // PortA Pin2 wieder low TCCR0 |=(1<<CS01); // Prescaler TCCR0 &=~(1<<CS00); // Prescaler TCCR0 &=~(1<<WGM00); // CTC (Clear Timer on Compare Match) TCCR0 |= (1<<WGM01); OCR0 = 1; // Overflow Compare Wert setzen TIMSK |= (1<<OCIE0); // Compare Interrupt erlauben while ((PINC&(1<<2))==0 && time<temp){ // Warte auf high an PinC2 } if (time<temp){ time=0; while ((PINC&(1<<2))!=0 && time<temp){ } TCCR0 &= ~(1<<CS01); // Timer ausschalten TCCR0 &= ~(1<<CS00); TIMSK &= ~(1<<OCIE0); // Compare Interrupt abschalten itoa(time,str,10); //uart_puts("zahlzustring time: "); uart_puts(erg.kette); uart_putc('\n'); //uart_puts("itoa time: "); uart_puts(str); uart_putc('\n'); if (time<(6553+78)){ // wg. 16 Bit! sonst Überlauf time=((time-78)*10/194)+3; } else time=((time-78)/19)+5; *entf=time; } else { uart_puts("FEHLER kein high an PinC2\n"); } ADCSRA=adcsra_bkp; } ISR (TIMER0_COMP_vect) // CompareMatch für Timer 0 { // alle (15Mhz/8)/19 time++; }
Compiler results:
Werbung
Online
warrenhinder6456