-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
6a87558
commit d90c7a9
Showing
12 changed files
with
692 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> | ||
<storageModule moduleId="org.eclipse.cdt.core.settings"> | ||
<cconfiguration id="de.innot.avreclipse.configuration.app.debug.1168977014"> | ||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="de.innot.avreclipse.configuration.app.debug.1168977014" moduleId="org.eclipse.cdt.core.settings" name="Debug"> | ||
<externalSettings/> | ||
<extensions> | ||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> | ||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
</extensions> | ||
</storageModule> | ||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> | ||
<configuration artifactName="${ProjName}" buildArtefactType="de.innot.avreclipse.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=de.innot.avreclipse.buildArtefactType.app,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" description="" id="de.innot.avreclipse.configuration.app.debug.1168977014" name="Debug" parent="de.innot.avreclipse.configuration.app.debug"> | ||
<folderInfo id="de.innot.avreclipse.configuration.app.debug.1168977014." name="/" resourcePath=""> | ||
<toolChain id="de.innot.avreclipse.toolchain.winavr.app.debug.1966076625" name="AVR-GCC Toolchain" superClass="de.innot.avreclipse.toolchain.winavr.app.debug"> | ||
<option id="de.innot.avreclipse.toolchain.options.toolchain.objcopy.flash.app.debug.1374845429" name="Generate HEX file for Flash memory" superClass="de.innot.avreclipse.toolchain.options.toolchain.objcopy.flash.app.debug"/> | ||
<option id="de.innot.avreclipse.toolchain.options.toolchain.objcopy.eeprom.app.debug.1793710956" name="Generate HEX file for EEPROM" superClass="de.innot.avreclipse.toolchain.options.toolchain.objcopy.eeprom.app.debug"/> | ||
<option id="de.innot.avreclipse.toolchain.options.toolchain.objdump.app.debug.801801764" name="Generate Extended Listing (Source + generated Assembler)" superClass="de.innot.avreclipse.toolchain.options.toolchain.objdump.app.debug"/> | ||
<option id="de.innot.avreclipse.toolchain.options.toolchain.size.app.debug.1661188870" name="Print Size" superClass="de.innot.avreclipse.toolchain.options.toolchain.size.app.debug"/> | ||
<option id="de.innot.avreclipse.toolchain.options.toolchain.avrdude.app.debug.44240082" name="AVRDude" superClass="de.innot.avreclipse.toolchain.options.toolchain.avrdude.app.debug"/> | ||
<targetPlatform id="de.innot.avreclipse.targetplatform.winavr.app.debug.516339372" name="AVR Cross-Target" superClass="de.innot.avreclipse.targetplatform.winavr.app.debug"/> | ||
<builder buildPath="${workspace_loc:/HC-SRO4 - Ultrasonic}/Debug" id="de.innot.avreclipse.target.builder.winavr.app.debug.1356319577" managedBuildOn="true" name="AVR GNU Make Builder.Debug" superClass="de.innot.avreclipse.target.builder.winavr.app.debug"/> | ||
<tool id="de.innot.avreclipse.tool.assembler.winavr.app.debug.245571731" name="AVR Assembler" superClass="de.innot.avreclipse.tool.assembler.winavr.app.debug"> | ||
<option id="de.innot.avreclipse.assembler.option.debug.level.1803785016" superClass="de.innot.avreclipse.assembler.option.debug.level"/> | ||
</tool> | ||
<tool id="de.innot.avreclipse.tool.compiler.winavr.app.debug.1080177634" name="AVR Compiler" superClass="de.innot.avreclipse.tool.compiler.winavr.app.debug"> | ||
<option id="de.innot.avreclipse.compiler.option.debug.level.571290866" superClass="de.innot.avreclipse.compiler.option.debug.level"/> | ||
<option id="de.innot.avreclipse.compiler.option.optimize.1220025499" superClass="de.innot.avreclipse.compiler.option.optimize"/> | ||
</tool> | ||
<tool id="de.innot.avreclipse.tool.cppcompiler.app.debug.1942917213" name="AVR C++ Compiler" superClass="de.innot.avreclipse.tool.cppcompiler.app.debug"> | ||
<option id="de.innot.avreclipse.cppcompiler.option.debug.level.2044473795" superClass="de.innot.avreclipse.cppcompiler.option.debug.level"/> | ||
<option id="de.innot.avreclipse.cppcompiler.option.optimize.202339891" superClass="de.innot.avreclipse.cppcompiler.option.optimize"/> | ||
</tool> | ||
<tool id="de.innot.avreclipse.tool.linker.winavr.app.debug.412094525" name="AVR C Linker" superClass="de.innot.avreclipse.tool.linker.winavr.app.debug"/> | ||
<tool id="de.innot.avreclipse.tool.cpplinker.app.debug.1438359880" name="AVR C++ Linker" superClass="de.innot.avreclipse.tool.cpplinker.app.debug"/> | ||
<tool id="de.innot.avreclipse.tool.archiver.winavr.base.683953910" name="AVR Archiver" superClass="de.innot.avreclipse.tool.archiver.winavr.base"/> | ||
<tool id="de.innot.avreclipse.tool.objdump.winavr.app.debug.2086549196" name="AVR Create Extended Listing" superClass="de.innot.avreclipse.tool.objdump.winavr.app.debug"/> | ||
<tool id="de.innot.avreclipse.tool.objcopy.flash.winavr.app.debug.2082365781" name="AVR Create Flash image" superClass="de.innot.avreclipse.tool.objcopy.flash.winavr.app.debug"/> | ||
<tool id="de.innot.avreclipse.tool.objcopy.eeprom.winavr.app.debug.1924561242" name="AVR Create EEPROM image" superClass="de.innot.avreclipse.tool.objcopy.eeprom.winavr.app.debug"/> | ||
<tool id="de.innot.avreclipse.tool.size.winavr.app.debug.1843899739" name="Print Size" superClass="de.innot.avreclipse.tool.size.winavr.app.debug"/> | ||
<tool id="de.innot.avreclipse.tool.avrdude.app.debug.1588288479" name="AVRDude" superClass="de.innot.avreclipse.tool.avrdude.app.debug"/> | ||
</toolChain> | ||
</folderInfo> | ||
</configuration> | ||
</storageModule> | ||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> | ||
</cconfiguration> | ||
<cconfiguration id="de.innot.avreclipse.configuration.app.release.41689496"> | ||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="de.innot.avreclipse.configuration.app.release.41689496" moduleId="org.eclipse.cdt.core.settings" name="Release"> | ||
<externalSettings/> | ||
<extensions> | ||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> | ||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
</extensions> | ||
</storageModule> | ||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> | ||
<configuration artifactName="${ProjName}" buildArtefactType="de.innot.avreclipse.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=de.innot.avreclipse.buildArtefactType.app,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" description="" id="de.innot.avreclipse.configuration.app.release.41689496" name="Release" parent="de.innot.avreclipse.configuration.app.release"> | ||
<folderInfo id="de.innot.avreclipse.configuration.app.release.41689496." name="/" resourcePath=""> | ||
<toolChain id="de.innot.avreclipse.toolchain.winavr.app.release.217704595" name="AVR-GCC Toolchain" superClass="de.innot.avreclipse.toolchain.winavr.app.release"> | ||
<option id="de.innot.avreclipse.toolchain.options.toolchain.objcopy.flash.app.release.846628101" name="Generate HEX file for Flash memory" superClass="de.innot.avreclipse.toolchain.options.toolchain.objcopy.flash.app.release"/> | ||
<option id="de.innot.avreclipse.toolchain.options.toolchain.objcopy.eeprom.app.release.629980104" name="Generate HEX file for EEPROM" superClass="de.innot.avreclipse.toolchain.options.toolchain.objcopy.eeprom.app.release"/> | ||
<option id="de.innot.avreclipse.toolchain.options.toolchain.objdump.app.release.1913158710" name="Generate Extended Listing (Source + generated Assembler)" superClass="de.innot.avreclipse.toolchain.options.toolchain.objdump.app.release"/> | ||
<option id="de.innot.avreclipse.toolchain.options.toolchain.size.app.release.6069346" name="Print Size" superClass="de.innot.avreclipse.toolchain.options.toolchain.size.app.release"/> | ||
<option id="de.innot.avreclipse.toolchain.options.toolchain.avrdude.app.release.1886671134" name="AVRDude" superClass="de.innot.avreclipse.toolchain.options.toolchain.avrdude.app.release"/> | ||
<targetPlatform id="de.innot.avreclipse.targetplatform.winavr.app.release.353372298" name="AVR Cross-Target" superClass="de.innot.avreclipse.targetplatform.winavr.app.release"/> | ||
<builder buildPath="${workspace_loc:/HC-SRO4 - Ultrasonic}/Release" id="de.innot.avreclipse.target.builder.winavr.app.release.1223081190" managedBuildOn="true" name="AVR GNU Make Builder.Release" superClass="de.innot.avreclipse.target.builder.winavr.app.release"/> | ||
<tool id="de.innot.avreclipse.tool.assembler.winavr.app.release.1138680686" name="AVR Assembler" superClass="de.innot.avreclipse.tool.assembler.winavr.app.release"> | ||
<option id="de.innot.avreclipse.assembler.option.debug.level.1098784280" superClass="de.innot.avreclipse.assembler.option.debug.level" value="de.innot.avreclipse.assembler.option.debug.level.none" valueType="enumerated"/> | ||
<inputType id="de.innot.avreclipse.tool.assembler.input.966469024" superClass="de.innot.avreclipse.tool.assembler.input"/> | ||
</tool> | ||
<tool id="de.innot.avreclipse.tool.compiler.winavr.app.release.2033322601" name="AVR Compiler" superClass="de.innot.avreclipse.tool.compiler.winavr.app.release"> | ||
<option id="de.innot.avreclipse.compiler.option.debug.level.2093472578" superClass="de.innot.avreclipse.compiler.option.debug.level" value="de.innot.avreclipse.compiler.option.debug.level.none" valueType="enumerated"/> | ||
<option id="de.innot.avreclipse.compiler.option.optimize.984398836" superClass="de.innot.avreclipse.compiler.option.optimize" value="de.innot.avreclipse.compiler.optimize.size" valueType="enumerated"/> | ||
<inputType id="de.innot.avreclipse.compiler.winavr.input.1478708573" name="C Source Files" superClass="de.innot.avreclipse.compiler.winavr.input"/> | ||
</tool> | ||
<tool id="de.innot.avreclipse.tool.cppcompiler.app.release.1739369958" name="AVR C++ Compiler" superClass="de.innot.avreclipse.tool.cppcompiler.app.release"> | ||
<option id="de.innot.avreclipse.cppcompiler.option.debug.level.588876242" superClass="de.innot.avreclipse.cppcompiler.option.debug.level" value="de.innot.avreclipse.cppcompiler.option.debug.level.none" valueType="enumerated"/> | ||
<option id="de.innot.avreclipse.cppcompiler.option.optimize.903506864" superClass="de.innot.avreclipse.cppcompiler.option.optimize" value="de.innot.avreclipse.cppcompiler.optimize.size" valueType="enumerated"/> | ||
</tool> | ||
<tool id="de.innot.avreclipse.tool.linker.winavr.app.release.364322941" name="AVR C Linker" superClass="de.innot.avreclipse.tool.linker.winavr.app.release"> | ||
<inputType id="de.innot.avreclipse.tool.linker.input.1685438991" name="OBJ Files" superClass="de.innot.avreclipse.tool.linker.input"> | ||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> | ||
<additionalInput kind="additionalinput" paths="$(LIBS)"/> | ||
</inputType> | ||
</tool> | ||
<tool id="de.innot.avreclipse.tool.cpplinker.app.release.704891239" name="AVR C++ Linker" superClass="de.innot.avreclipse.tool.cpplinker.app.release"/> | ||
<tool id="de.innot.avreclipse.tool.archiver.winavr.base.67884289" name="AVR Archiver" superClass="de.innot.avreclipse.tool.archiver.winavr.base"/> | ||
<tool id="de.innot.avreclipse.tool.objdump.winavr.app.release.765807250" name="AVR Create Extended Listing" superClass="de.innot.avreclipse.tool.objdump.winavr.app.release"/> | ||
<tool id="de.innot.avreclipse.tool.objcopy.flash.winavr.app.release.1043097886" name="AVR Create Flash image" superClass="de.innot.avreclipse.tool.objcopy.flash.winavr.app.release"/> | ||
<tool id="de.innot.avreclipse.tool.objcopy.eeprom.winavr.app.release.920270284" name="AVR Create EEPROM image" superClass="de.innot.avreclipse.tool.objcopy.eeprom.winavr.app.release"/> | ||
<tool id="de.innot.avreclipse.tool.size.winavr.app.release.228655045" name="Print Size" superClass="de.innot.avreclipse.tool.size.winavr.app.release"/> | ||
<tool id="de.innot.avreclipse.tool.avrdude.app.release.1291400271" name="AVRDude" superClass="de.innot.avreclipse.tool.avrdude.app.release"/> | ||
</toolChain> | ||
</folderInfo> | ||
</configuration> | ||
</storageModule> | ||
</cconfiguration> | ||
</storageModule> | ||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> | ||
<project id="HC-SRO4 - Ultrasonic.de.innot.avreclipse.project.winavr.elf_2.1.0.762515596" name="AVR Cross Target Application" projectType="de.innot.avreclipse.project.winavr.elf_2.1.0"/> | ||
</storageModule> | ||
<storageModule moduleId="scannerConfiguration"> | ||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | ||
<scannerConfigBuildInfo instanceId="de.innot.avreclipse.configuration.app.release.41689496;de.innot.avreclipse.configuration.app.release.41689496.;de.innot.avreclipse.tool.compiler.winavr.app.release.2033322601;de.innot.avreclipse.compiler.winavr.input.1478708573"> | ||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="de.innot.avreclipse.core.AVRGCCManagedMakePerProjectProfileC"/> | ||
</scannerConfigBuildInfo> | ||
</storageModule> | ||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> | ||
</cproject> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<projectDescription> | ||
<name>HC-SRO4 - Ultrasonic</name> | ||
<comment></comment> | ||
<projects> | ||
</projects> | ||
<buildSpec> | ||
<buildCommand> | ||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name> | ||
<triggers>clean,full,incremental,</triggers> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
<buildCommand> | ||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name> | ||
<triggers>full,incremental,</triggers> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
</buildSpec> | ||
<natures> | ||
<nature>org.eclipse.cdt.core.cnature</nature> | ||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> | ||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature> | ||
<nature>de.innot.avreclipse.core.avrnature</nature> | ||
</natures> | ||
</projectDescription> |
7 changes: 7 additions & 0 deletions
7
HC-SRO4 - Ultrasonic/.settings/de.innot.avreclipse.core.prefs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
avrtarget/ClockFrequency=1000000 | ||
avrtarget/ExtRAMSize=0 | ||
avrtarget/ExtendedRAM=false | ||
avrtarget/MCUType=atmega32 | ||
avrtarget/UseEEPROM=false | ||
avrtarget/UseExtendedRAMforHeap=true | ||
eclipse.preferences.version=1 |
2 changes: 2 additions & 0 deletions
2
HC-SRO4 - Ultrasonic/.settings/org.eclipse.core.resources.prefs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
eclipse.preferences.version=1 | ||
encoding/<project>=UTF-8 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
/****************************************************************************** | ||
* | ||
* Module: HC-SRO4 Ultrasonic | ||
* File Name: HC-SRO4_ultrasonic.c | ||
* Description: Source file for the HC-SR04 Ultrasonic driver | ||
* Author: Ibrahim Mohamed | ||
* | ||
*******************************************************************************/ | ||
|
||
#include <util/delay.h> | ||
#include "gpio.h" | ||
#include "common_macros.h" | ||
#include "HC-SRO4_ultrasonic.h" | ||
#include "icu.h" | ||
|
||
|
||
/******************************************************************************* | ||
* Global Functions * | ||
*******************************************************************************/ | ||
|
||
|
||
static uint16 g_echo = 0; | ||
static uint8 g_countOfEdges = 0; | ||
|
||
/******************************************************************************* | ||
* Functions Definition * | ||
*******************************************************************************/ | ||
|
||
|
||
/* | ||
* Description : | ||
* Initialize the ICU driver. | ||
* Setup the ICU call back function. | ||
* Setup the direction for the trigger pin as output pin through the GPIO driver. | ||
*/ | ||
void Ultrasonic_init(void){ | ||
|
||
/* | ||
* set up the configurations to the ICU unit to work with: | ||
* - the processor frequency over 8 | ||
* - capture the rising edge of the pluse | ||
* | ||
*/ | ||
Icu_ConfigType ICU_configuration = { | ||
F_CPU_8, | ||
RISING | ||
}; | ||
|
||
|
||
/* initialize the ICU with configurations */ | ||
Icu_init(&ICU_configuration); | ||
|
||
/* set the callback function which will calculate the time */ | ||
Icu_setCallBack(Ultrasonic_edgeProcessing); | ||
|
||
/* set up the trigger port to be output */ | ||
GPIO_setupPinDirection(ULTRASONIC_TRIGGER_PORT, ULTRASONIC_TRIGGER_PIN, PIN_OUTPUT); | ||
} | ||
|
||
/* | ||
* Description : | ||
* Send the Trigger pulse to the ultrasonic. | ||
*/ | ||
void Ultrasonic_Trigger(void){ | ||
|
||
GPIO_writePin(ULTRASONIC_TRIGGER_PORT, ULTRASONIC_TRIGGER_PIN, LOGIC_HIGH); | ||
_delay_ms(1); | ||
GPIO_writePin(ULTRASONIC_TRIGGER_PORT, ULTRASONIC_TRIGGER_PIN, LOGIC_LOW); | ||
|
||
} | ||
|
||
/* | ||
* Description : | ||
* Send the trigger pulse by using Ultrasonic_Trigger function. | ||
* Start the measurements by the ICU from this moment. | ||
*/ | ||
uint16 Ultrasonic_readDistance(void){ | ||
|
||
/* send trigger signal */ | ||
Ultrasonic_Trigger(); | ||
|
||
/* polling */ | ||
while(g_countOfEdges != 2); | ||
|
||
g_countOfEdges = 0; | ||
return g_echo/58.8; /* return the distance */ | ||
|
||
} | ||
|
||
/* | ||
* Description : | ||
* This is the call back function called by the ICU driver. | ||
* This is used to calculate the high time (pulse time) generated by the ultrasonic sensor. | ||
*/ | ||
void Ultrasonic_edgeProcessing(void){ | ||
|
||
g_countOfEdges++; | ||
|
||
if(g_countOfEdges == 1){ | ||
|
||
/* Clear the timer counter register */ | ||
Icu_clearTimerValue(); | ||
/* change the edge detection to be falling edge */ | ||
Icu_setEdgeDetectionType(FALLING); | ||
} | ||
|
||
else if(g_countOfEdges == 2){ | ||
|
||
/* get the high time */ | ||
g_echo = Icu_getInputCaptureValue(); | ||
|
||
/* Clear the timer counter register */ | ||
Icu_clearTimerValue(); | ||
|
||
/* change the edge detection to be rising edge */ | ||
Icu_setEdgeDetectionType(RISING); | ||
|
||
} | ||
} | ||
|
Oops, something went wrong.