[ADD] timer, but I don't think it works yet
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,27 +1,152 @@
|
||||
S0180000756C747261736F6E696353656E736F722E737265634E
|
||||
S113000045C0000082C0000056C0000054C000007B
|
||||
S113001052C0000050C000004EC000004CC00000A0
|
||||
S11300204AC0000048C0000046C0000044C00000B0
|
||||
S113003042C0000040C000003EC000003CC00000C0
|
||||
S11300403AC0000038C0000036C0000034C00000D0
|
||||
S113005032C0000030C000002EC000002CC00000E0
|
||||
S11300602AC0000028C0000026C0000024C00000F0
|
||||
S113007022C0000020C000001EC000001CC0000000
|
||||
S11300801AC0000018C0000016C0000011241FBED2
|
||||
S1130090CFEFD0E1DEBFCDBF11E0A0E0B1E0ECE7EF
|
||||
S11300A0F1E000E00BBF02C007900D92A230B1074F
|
||||
S11300B0D9F747D061C0A4CF20E030E006C046E0C5
|
||||
S11300C04A95F1F700C02F5F3F4F28173907B8F35F
|
||||
S11300D0089520E030E008C0E7E8F3E13197F1F754
|
||||
S11300E000C000002F5F3F4F28173907A8F3089579
|
||||
S11300F0CF93DF93C5E6D0E018828AE090E0DCDF9E
|
||||
S113010081E08883DF91CF9108951F920F920FB6FB
|
||||
S11301100F9211248F9380910001813031F482E099
|
||||
S113012080936A001092000106C083E080936A0005
|
||||
S113013081E0809300018F910F900FBE0F901F906C
|
||||
S113014018958FEF8093640011BA8ABBEAE6F0E059
|
||||
S113015080818360808389B7816089BF7894C8DF98
|
||||
S113016080910001811103C08FEF8BBB01C01BBACA
|
||||
S10F017088EE93E0AEDFF3CFF894FFCFED
|
||||
S105017C01007C
|
||||
S113000045C0000062C100005EC000005CC000008A
|
||||
S11300105AC0000058C0000056C0000054C0000080
|
||||
S113002052C0000050C000004EC000004CC0000090
|
||||
S11300304AC0000048C0000046C0000044C00000A0
|
||||
S113004042C0000040C000003EC000003CC00000B0
|
||||
S11300503AC0000038C0000036C0000034C00000C0
|
||||
S113006032C0000030C000002EC000002CC00000D0
|
||||
S11300702AC0000028C0000026C0000024C00000E0
|
||||
S113008022C0000020C000001EC0000011241FBEBA
|
||||
S1130090CFEFD0E1DEBFCDBF11E0A0E0B1E0EAE4F4
|
||||
S11300A0F9E000E00BBF02C007900D92A430B10745
|
||||
S11300B0D9F721E0A4E0B1E001C01D92A630B20757
|
||||
S11300C0E1F729D140C49CCF9BB321E030E002C0CA
|
||||
S11300D0220F331F8A95E2F7292B2BBB08959BB37C
|
||||
S11300E021E030E002C0220F331F8A95E2F7209509
|
||||
S11300F029232BBB089586E090E0E6DF83EC99E0AA
|
||||
S11301000197F1F700C0000086E090E0E8DF83EC9F
|
||||
S113011099E00197F1F700C000000895CF93C82F2C
|
||||
S113012085BB84E090E0D0DFE6DFC295C07FC5BB2D
|
||||
S113013084E090E0C9DFDFDFCF910895CF93C82F2B
|
||||
S113014085BB84E090E0CBDFD6DFC295C07FC5BB22
|
||||
S113015084E090E0C4DFCFDFCF91089581E0EEDF4B
|
||||
S113016087E893E10197F1F700C0000080E8E6CF4B
|
||||
S11301700895CF938FEF84BB85BB81BB8ABB15BA2F
|
||||
S11301801BBAC0E2C5BBB7DFC5BBB5DF80E885BB22
|
||||
S1130190B2DF15BAB0DF80EF85BBADDF15BAABDFD8
|
||||
S11301A080E685BBA8DF82E0C9DFA5DFCF91089593
|
||||
S11301B0CF93DF93EC0102C0B1DF219688818111D6
|
||||
S11301C0FBCFDF91CF910895AF92BF92CF92DF9290
|
||||
S11301D0EF92FF920F931F93CF93DF93CDB7DEB7C8
|
||||
S11301E0D82EC92EADB6BEB69F938F930F2EF1E0D5
|
||||
S11301F0EF2EF1E0FF2EF02DFF92EF921F921F924F
|
||||
S11302001F921F92B7D001962DB73EB7285F3F4F7C
|
||||
S11302100FB6F8943EBF0FBE2DBF281B390B0FB687
|
||||
S1130220F8943EBF0FBE2DBF0DB71EB70F5F1F4F13
|
||||
S1130230CF92DF92FF92EF929F938F931F930F932E
|
||||
S113024099D0802F912FB4DF8DB79EB708960FB643
|
||||
S1130250F8949EBF0FBE8DBF0FB6F894BEBE0FBEFE
|
||||
S1130260ADBEDF91CF911F910F91FF90EF90DF9082
|
||||
S1130270CF90BF90AF90089520E030E006C046E0F4
|
||||
S11302804A95F1F700C02F5F3F4F28173907B8F39D
|
||||
S1130290089520E030E008C0E7E8F3E13197F1F792
|
||||
S11302A000C000002F5F3F4F28173907A8F30895B7
|
||||
S11302B0CF93DF93C5E6D0E018828AE090E0DCDFDC
|
||||
S11302C081E08883DF91CF9108951F920F920FB63A
|
||||
S11302D00F9211248F939F9380910001813041F4F8
|
||||
S11302E082E080936A001DBC1CBC109200010CC00B
|
||||
S11302F083E080936A008CB59DB59093050180934B
|
||||
S1130300040181E0809300019F918F910F900FBEB3
|
||||
S11303100F901F9018958FEF8093640011BAEAE64E
|
||||
S1130320F0E080818360808389B7816089BF1FBCCE
|
||||
S11303308CE08EBD78941DDF8FE493EC0197F1F788
|
||||
S113034000C000000BDFB4DF2091040130910501EF
|
||||
S113035084E591E0289FE001299FD00D389FD00DBE
|
||||
S11303601124D695C795FADECE012EDF88EE93E0F0
|
||||
S113037090DFE9CF0F931F93CF93DF93CDB7DEB711
|
||||
S11303802E970FB6F894DEBF0FBECDBF0D891E8920
|
||||
S11303908F89988D26E02C831A83098397FF02C0E6
|
||||
S11303A080E090E801979E838D83AE01455E5F4FA8
|
||||
S11303B0698D7A8DCE01019619D04D815E8157FDEC
|
||||
S11303C00AC02F813885421753070CF49A01F801AB
|
||||
S11303D0E20FF31F10822E960FB6F894DEBF0FBE05
|
||||
S11303E0CDBFDF91CF911F910F9108952F923F922E
|
||||
S11303F04F925F926F927F928F929F92AF92BF9231
|
||||
S1130400CF92DF92EF92FF920F931F93CF93DF93DC
|
||||
S1130410CDB7DEB72B970FB6F894DEBF0FBECDBFB6
|
||||
S11304206C017B018A01FC0117821682838181FFA2
|
||||
S1130430BFC1CE0101963C01F6019381F70193FD02
|
||||
S1130440859193FF81917F01882309F4ADC18532A1
|
||||
S113045039F493FD859193FF81917F01853221F4D5
|
||||
S1130460B60190E0D6D1E8CF912C212C312CFFE1BC
|
||||
S1130470F315D8F08B3279F038F4803279F0833286
|
||||
S1130480A1F4232D20611DC08D3261F0803369F405
|
||||
S1130490232D216016C0832D8260382EE32DE46065
|
||||
S11304A03E2E2AC0F32DF8601DC037FC2DC020ED70
|
||||
S11304B0280F2A3040F08E32B9F436FC75C1232D52
|
||||
S11304C02064322E19C036FE06C08AE0989E200DA4
|
||||
S11304D01124922E11C0EAE02E9E200D1124222E0A
|
||||
S11304E0F32DF0623F2E08C08C3621F4832D8068F2
|
||||
S11304F0382E02C0883641F4F70193FD859193FFAD
|
||||
S113050081917F018111B3CF982F9F7D95549330B2
|
||||
S113051028F40C5F1F4F9FE399830DC0833631F09D
|
||||
S1130520833771F0833509F055C020C0F80180810C
|
||||
S113053089830E5F1F4F88248394912C530112C02A
|
||||
S11305402801F2E04F0E511CF801A080B18036FE64
|
||||
S113055003C0692D70E002C06FEF7FEFC5014ED17B
|
||||
S11305604C018201F32DFF773F2E15C0280122E0B4
|
||||
S1130570420E511CF801A080B18036FE03C0692DE3
|
||||
S113058070E002C06FEF7FEFC5012DD14C01F32D58
|
||||
S1130590F0683F2E820133FC19C0822D90E088164A
|
||||
S11305A09906A0F4B60180E290E033D12A94F5CF05
|
||||
S11305B0F50137FC859137FE81915F01B60190E02A
|
||||
S11305C028D121102A9421E0821A910881149104DF
|
||||
S11305D079F7E1C0843611F0893639F5F80137FE30
|
||||
S11305E007C060817181828193810C5F1F4F08C0B5
|
||||
S11305F060817181072E000C880B990B0E5F1F4FD1
|
||||
S1130600F32DFF763F2E97FF09C090958095709546
|
||||
S113061061957F4F8F4F9F4FF0683F2E2AE030E067
|
||||
S1130620A30133D1882E861844C0853731F4232D95
|
||||
S11306302F7EB22E2AE030E025C0932D997FB92E6B
|
||||
S11306408F36C1F018F4883579F0AEC0803719F0D0
|
||||
S1130650883721F0A9C0E92FE061BE2EB4FE0DC099
|
||||
S1130660FB2DF460BF2E09C034FE0AC0292F26607A
|
||||
S1130670B22E06C028E030E005C020E130E002C020
|
||||
S113068020E132E0F801B7FE07C060817181828108
|
||||
S113069093810C5F1F4F06C06081718180E090E000
|
||||
S11306A00E5F1F4FA301F1D0882E8618FB2DFF7714
|
||||
S11306B03F2E36FE0DC0232D2E7FA22E891458F412
|
||||
S11306C034FE0BC032FC09C0832D8E7EA82E05C0DB
|
||||
S11306D0B82CA32C03C0B82C01C0B92CA4FE0FC0A5
|
||||
S11306E0FE01E80DF11D8081803321F49A2D997E5D
|
||||
S11306F0A92E09C0A2FE06C0B394B39404C08A2DE7
|
||||
S1130700867809F0B394A3FC10C0A0FE06C0B2140E
|
||||
S113071080F4280C922C9B180DC0B21458F4B60126
|
||||
S113072080E290E076D0B394F8CFB21418F42B188A
|
||||
S113073002C0982C212CA4FE0FC0B60180E390E0E7
|
||||
S113074068D0A2FE16C0A1FC03C088E790E002C0F6
|
||||
S113075088E590E0B6010CC08A2D867851F0A1FEA0
|
||||
S113076002C08BE201C080E2A7FC8DE2B60190E0FA
|
||||
S113077050D0891430F4B60180E390E04AD09A94C2
|
||||
S1130780F8CF8A94F301E80DF11D8081B60190E061
|
||||
S113079040D08110F6CF222009F44ECEB60180E27B
|
||||
S11307A090E037D02A94F7CFF6018681978102C072
|
||||
S11307B08FEF9FEF2B960FB6F894DEBF0FBECDBF21
|
||||
S11307C0DF91CF911F910F91FF90EF90DF90CF9029
|
||||
S11307D0BF90AF909F908F907F906F905F904F905D
|
||||
S11307E03F902F900895FC010590615070400110D6
|
||||
S11307F0D8F7809590958E0F9F1F0895FC01615046
|
||||
S1130800704001900110D8F7809590958E0F9F1F2E
|
||||
S113081008950F931F93CF93DF93FB01238121FD51
|
||||
S113082003C08FEF9FEF2CC022FF16C04681578173
|
||||
S1130830248135814217530744F4A081B1819D017D
|
||||
S11308402F5F3F4F318320838C93268137812F5F25
|
||||
S11308503F4F3783268314C08B01EC01FB010084D6
|
||||
S1130860F185E02D0995892BE1F6D80116968D9135
|
||||
S11308709C911797019617969C938E931697CE0189
|
||||
S1130880DF91CF911F910F910895FA01AA27283083
|
||||
S113089051F1203181F1E8946F936E7F6E5F7F4F49
|
||||
S11308A08F4F9F4FAF4FB1E03ED0B4E03CD0670FC5
|
||||
S11308B0781F891F9A1FA11D680F791F8A1F911D18
|
||||
S11308C0A11D6A0F711D811D911DA11D20D009F468
|
||||
S11308D068943F912AE0269F11243019305D3193AA
|
||||
S11308E0DEF6CF010895462F4770405D4193B3E093
|
||||
S11308F00FD0C9F7F6CF462F4F70405D4A3318F03A
|
||||
S1130900495D31FD4052419302D0A9F7EACFB4E0EA
|
||||
S1130910A6959795879577956795BA95C9F70097A2
|
||||
S11309206105710508959B01AC010A2E0694579543
|
||||
S1130930479537952795BA95C9F7620F731F841F9A
|
||||
S10D0940951FA01D0895F894FFCF41
|
||||
S107094A012564001B
|
||||
S9030000FC
|
||||
|
||||
@@ -126,8 +126,8 @@ void lcd_move_right(void){
|
||||
|
||||
void lcd_write_int(int number)
|
||||
{
|
||||
int length = snprintf(NULL, 0, "%d", number + 1);
|
||||
int length = snprintf(NULL, 0, "%d", number);
|
||||
char str[length + 1];
|
||||
snprintf(str, length + 1, "%d", number + 1);
|
||||
snprintf(str, length + 1, "%d", number);
|
||||
lcd_write_string(str);
|
||||
}
|
||||
|
||||
@@ -28,6 +28,8 @@ enum interrupt_status {INTERRUPT_FALLING, INTERRUPT_RISING};
|
||||
|
||||
static enum interrupt_status int_stat = INTERRUPT_RISING;
|
||||
|
||||
uint16_t timer_dist = 0; // time measured by timer;
|
||||
|
||||
void wait_us(unsigned int us)
|
||||
{
|
||||
for(int i = 0; i < us; i++)
|
||||
@@ -61,6 +63,9 @@ ISR(INT0_vect)
|
||||
// set interrupt pin 0 on PORTD to falling edge
|
||||
EICRA = 0x02;
|
||||
|
||||
// reset the time in timer1
|
||||
TCNT1 = 0x00;
|
||||
|
||||
// set interrupt status
|
||||
int_stat = INTERRUPT_FALLING;
|
||||
} else
|
||||
@@ -69,6 +74,9 @@ ISR(INT0_vect)
|
||||
// set interrupt pin 0 on PORTD to rising edge
|
||||
EICRA = 0x03;
|
||||
|
||||
// read timer1 into time_dist
|
||||
timer_dist = TCNT1;
|
||||
|
||||
// set interrupt status
|
||||
int_stat = INTERRUPT_RISING;
|
||||
}
|
||||
@@ -81,26 +89,34 @@ int main(void)
|
||||
DDRG = 0xFF; // port g all output. pin 0 is trig, the rest is for debug
|
||||
DDRD = 0x00; // port D pin 0 on input. 0 is echo and also interrupt
|
||||
|
||||
DDRA = 0xFF;
|
||||
|
||||
EICRA |= 0x03; // interrupt PORTD on pin 0, rising edge
|
||||
|
||||
EIMSK |= 0x01; // enable interrupt on pin 0 (INT0)
|
||||
|
||||
TCCR1A = 0b00000000; // initialize timer1, prescaler=256
|
||||
TCCR1B = 0b00001100; // CTC compare A, RUN
|
||||
|
||||
|
||||
sei(); // turn on interrupt system
|
||||
|
||||
init_4bits_mode();
|
||||
|
||||
_delay_ms(10);
|
||||
|
||||
lcd_clear();
|
||||
|
||||
|
||||
/* Replace with your application code */
|
||||
while (1)
|
||||
{
|
||||
ultrasonic_send_pulse();
|
||||
if (int_stat == INTERRUPT_FALLING)
|
||||
{
|
||||
PORTA = 0xFF;
|
||||
} else {
|
||||
PORTA = 0x00;
|
||||
}
|
||||
|
||||
wait_ms(100);
|
||||
int distance = timer_dist * 340 / 2;
|
||||
lcd_clear();
|
||||
lcd_write_int(distance);
|
||||
|
||||
|
||||
wait_ms(1000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user