Форум РадиоКот https://radiokot.ru/forum/ |
|
Сигнализация авто с датчиком удара https://radiokot.ru/forum/viewtopic.php?f=62&t=146181 |
Страница 1 из 1 |
Автор: | zzaj [ Пн июн 19, 2017 12:47:16 ] |
Заголовок сообщения: | Сигнализация авто с датчиком удара |
Здравствуйте. Помогите реализовать проект на attiny 13.Я очень далек от программирования, только готовые HEXы прошивал. помогите написать программу, что б я в ней мог разобраться и в протеусе заодно попрактиковаться на конкретном примере. Мне самому по силам собрать данный функционал на одной 561ТМ2 (cd4013) за день, вместе с установкой на авто. Хочется что-то новое попробовать. Это простая добавка к штатной сигналке авто. У штатной есть датчик объма и датчик наклона, а датчика удара нет. Сами датчики удара у меня валяются, они вполне стандартные, двухуровневые, по схеме (SW3-6). Срабатывание первого уровня (1lvl) выдает кратковременный крик сирены (BUZ), второй уровень (2lvl)- 30сек крик. Датчики будут запараллелены для передней и задней части авто. При постановке на охрану (SW1)- (U1) ждет сигналов с датчиков и выдает положительный импульс на (Q1), при снятии (SW2) - не реагирует. Светодиод (D5) только для протеуса.Вот и весь алгоритм.Но: Самое сложное - это команды постановки и снятия с охраны. Я их нашел в автомобиле - положительные импульсы +12в. Но есть проблема - при закрытии на проводе закрывания отличный прямоугольник, но на проводе открытия в это время проскакивает ощутимый "тычек" и наоборот, соответственно, при открывании. Отфильтровать RC-цепями (R1R2C1 и R7R8C2) довольно коряво получается. Но получается. Усложнять аппаратную часть неохота, правильнее программно решить. Поэтому лучше сравнивать длительности импульсов и выбирать бОльший. Кто готов помочь с программой, фьюзами, да и со схемой, если есть ошибки - буду очень признателен. Вложение: Вложение:
|
Автор: | Ivanoff-iv [ Ср июн 21, 2017 13:03:23 ] |
Заголовок сообщения: | Re: Сигнализация авто с датчиком удара |
В протеусе твой проект не открылся - у меня версия старая (поэтому работоспособность не гарантирую) проверяй, правда хоть комментариев не много оставил, но код должен быть понятен как шпаргалку по регистрам и как калькулятор использую AlgorithmBuilder, а иногда даже пишу в нём мелочевку какую, посмотри, может и тебе глянется. Добавлено after 1 hour 5 minutes 32 seconds: П.С.: проверил, вроде робит, комментарии немножко дописал Плюс - к Т.З. добавил сброс писка при снятии-перепостановке сигналки. |
Автор: | zzaj [ Чт июн 22, 2017 05:39:06 ] |
Заголовок сообщения: | Re: Сигнализация авто с датчиком удара |
Спасибо, буду разбираться. а я уж думал перенести тему в раздел "есть работа" ). |
Автор: | Ivanoff-iv [ Чт июн 22, 2017 11:50:21 ] |
Заголовок сообщения: | Re: Сигнализация авто с датчиком удара |
Вот, блин, поспешил я ![]() ![]() ![]() |
Автор: | zzaj [ Вт июн 27, 2017 09:41:49 ] |
Заголовок сообщения: | Re: Сигнализация авто с датчиком удара |
Поставил атмел студио 6.0., почитал уроки, не получается сделать hex, выдает 7 ошибок и 2 предупреждения. Error 1 unknown type name 'bit' C:\Programming\Alarm\GccApplication4\GccApplication4\GccApplication4.c 20 1 GccApplication4 Error 2 'PC_INT0' undeclared here (not in a function) C:\Programming\Alarm\GccApplication4\GccApplication4\GccApplication4.c 23 12 GccApplication4 Error 3 expected '=', ',', ';', 'asm' or '__attribute__' before 'void' C:\Programming\Alarm\GccApplication4\GccApplication4\GccApplication4.c 23 21 GccApplication4 Error 4 'TIM0_COMPA' undeclared here (not in a function) C:\Programming\Alarm\GccApplication4\GccApplication4\GccApplication4.c 54 12 GccApplication4 Error 5 expected '=', ',', ';', 'asm' or '__attribute__' before 'void' C:\Programming\Alarm\GccApplication4\GccApplication4\GccApplication4.c 54 24 GccApplication4 Warning 6 return type of 'main' is not 'int' [-Wmain] C:\Programming\Alarm\GccApplication4\GccApplication4\GccApplication4.c 70 6 GccApplication4 Warning 7 ignoring #pragma optsize [-Wunknown-pragmas] C:\Programming\Alarm\GccApplication4\GccApplication4\GccApplication4.c 75 0 GccApplication4 Error 8 invalid preprocessing directive #asm C:\Programming\Alarm\GccApplication4\GccApplication4\GccApplication4.c 123 3 GccApplication4 Error 9 invalid preprocessing directive #asm C:\Programming\Alarm\GccApplication4\GccApplication4\GccApplication4.c 128 4 GccApplication4 Мой старенький ноут ужасно тормозит, сейчас снесу атмел студио 6.0 и поставлю avr studio 4 Добавлено after 2 hours 8 minutes 34 seconds: Поставил avr studio 4, стало все намного быстрее, но опять с ошибками. Build started 27.6.2017 at 11:38:48 avr-gcc -mmcu=attiny13a -Wall -gdwarf-2 -std=gnu99 -DF_CPU=128000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT 4al.o -MF dep/4al.o.d -c ../4al.c ../4al.c:34:24: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Saved' ../4al.c:37:12: error: 'PC_INT0' undeclared here (not in a function) ../4al.c:37:21: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void' ../4al.c:68:12: error: 'TIM0_COMPA' undeclared here (not in a function) ../4al.c:68:24: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void' ../4al.c:84:6: warning: return type of 'main' is not 'int' ../4al.c: In function 'main': ../4al.c:89:0: warning: ignoring #pragma optsize ../4al.c:137:2: error: invalid preprocessing directive #asm ../4al.c:142:8: error: invalid preprocessing directive #asm make: *** [4al.o] Ошибка 1 Build failed with 7 errors and 2 warnings... |
Автор: | BOB51 [ Вт июн 27, 2017 10:20:06 ] |
Заголовок сообщения: | Re: Сигнализация авто с датчиком удара |
Оптимально для "простых/устаревших" ПК версия AVR Studio 4.19 (build 730) (130984720, updated September 2011) искать тут: http://www.atmel.com/tools/STUDIOARCHIVE.aspx ![]() |
Автор: | oleg110592 [ Вт июн 27, 2017 11:27:21 ] |
Заголовок сообщения: | Re: Сигнализация авто с датчиком удара |
Цитата: ../4al.c:34:24: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Saved' ; (точки с запятой) не хватает |
Автор: | zzaj [ Вт июн 27, 2017 11:41:20 ] |
Заголовок сообщения: | Re: Сигнализация авто с датчиком удара |
Тут, похоже, не в версии дело и не в слабом компе - они все ставятся и работают, а в том, что я ни хрена не понимаю, что делать надо. Сейчас вдобавок поставил WinAVR, по урокам из инета пытаюсь разобраться, как слепой котенок. Лет много назад захотел на PICе собрать - вся информация в одном месте нашлась. Команды - компилятор - программатор. Все простое и понятно, как для детей. Тут же программы-монстры какие-то, hex не могу получить. Может есть простой путь, пока желание не отбило? Добавлено after 2 minutes 40 seconds: Цитата: ../4al.c:34:24: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Saved' ; (точки с запятой) не хватает Допустим, попробую, а как же тогда у Ivanoff-iv заработало? Какие-то компиляторы допускают это? |
Автор: | oleg110592 [ Вт июн 27, 2017 11:45:22 ] |
Заголовок сообщения: | Re: Сигнализация авто с датчиком удара |
Цитата: Какие-то компиляторы допускают это? посмотрел - Codevision, под студию переделать надо |
Автор: | Зурбаган [ Вт июн 27, 2017 11:46:08 ] |
Заголовок сообщения: | Re: Сигнализация авто с датчиком удара |
Керниган и Ритчи "Язык программирования Си" (pdf-книжка), а так же более простые онлайн материалы http://www.c-cpp.ru/books - в помощь! Ааа, или тут нет задачи разбираться в программировании, а только задача запустить зачем-то? |
Автор: | zzaj [ Вт июн 27, 2017 12:09:07 ] |
Заголовок сообщения: | Re: Сигнализация авто с датчиком удара |
Да, задача стать программистом не стоит, просто получить начальные навыки, что бы понимать простые программы и от си или ассемблера через протеус пройти до железного МК. На примерах, к-е интересны. Добавлено after 10 minutes 17 seconds: oleg110592, Codevision то же ставил две штуки разные ломаные - лицензии не проходят. |
Автор: | oleg110592 [ Вт июн 27, 2017 12:34:49 ] |
Заголовок сообщения: | Re: Сигнализация авто с датчиком удара |
для студии по быстрячку: СпойлерКод: #include <avr/io.h> #include <avr/interrupt.h> #include <avr/sleep.h> #define Al2L (PINB & (1<<0)) #define Al1L (PINB & (1<<1)) #define UnSave (PINB & (1<<2)) #define Save (PINB & (1<<3)) #define BuzzerPort PORTB #define BuzzerBit (1<<4) #define T0Stop TCCR0B=0x00 // Clock value: 0 Hz #define T0Run TCCR0B=0x04 // Clock value: 500 Hz volatile unsigned char Tim05S; volatile unsigned char Saved; // Pin change interrupt service routine //interrupt [PC_INT0] void pin_change_isr(void) ISR(PCINT0_vect) { // вызывается при изменении состояния ног пин B 0-3. // здесь можно добавить небольшую задержку для антидребезга if ((Save==1)&&(UnSave==0)) //постановка на охрану { Saved=1; Tim05S=0; }; if ((Save==0)&&(UnSave==1)) //снятие с охраны { Saved=0; Tim05S=0; }; if (Saved) //сработка датчиков происходит только если машина под охраной { if ((Tim05S==0)&&(Al1L)) //сработка слабого датчика произойдет если машина не пищит { BuzzerPort |= BuzzerBit; Tim05S=0; //установка времени пищания до первой сработки таймера = 0,5с T0Run; }; if (Al2L) { BuzzerPort |= BuzzerBit; Tim05S=59; //установка времени пищания 30с*2-1 T0Run; }; }; } // Timer 0 output compare A interrupt service routine ISR(TIM0_COMPA_vect) { // вызывается с частотой 2Гц если таймер работает if (Tim05S==0) { BuzzerPort &= ~BuzzerBit; T0Stop; } else { Tim05S--; }; } // Declare your global variables here int main(void) { // Declare your local variables here // Crystal Oscillator division factor: 1 CLKPR=0x80; CLKPR=0x00; // Input/Output Ports initialization // Port B initialization // Func5=In Func4=Out Func3=In Func2=In Func1=In Func0=In // State5=P State4=0 State3=T State2=T State1=P State0=P PORTB=0x23; DDRB=0x10; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 0 kHz // Mode: CTC top=OCR0A // OC0A output: Disconnected // OC0B output: Disconnected TCCR0A=0x02; TCCR0B=0x00; TCNT0=0x00; OCR0A=0xFA; //250 = 500Гц/2 OCR0B=0x00; // External Interrupt(s) initialization // INT0: Off // Interrupt on any change on pins PCINT0-5: On GIMSK=0x20; MCUCR=0x20; //<-установлен режим сна (было 0x00) PCMSK=0x0F; GIFR=0x20; // Timer/Counter 0 Interrupt(s) initialization TIMSK0=0x04; // Analog Comparator initialization // Analog Comparator: Off ACSR=0x80; ADCSRB=0x00; DIDR0=0x00; // ADC initialization // ADC disabled ADCSRA=0x00; // Global enable interrupts sei(); while (1) { // Place your code here asm volatile("sleep"); } } |
Автор: | Ivanoff-iv [ Вт июн 27, 2017 13:41:36 ] |
Заголовок сообщения: | Re: Сигнализация авто с датчиком удара |
я в кодевижне делал, приду домой — хекс выложу. |
Автор: | zzaj [ Вт июн 27, 2017 14:27:24 ] |
Заголовок сообщения: | Re: Сигнализация авто с датчиком удара |
Объясните в двух словах, если можно, почему одна и та же программа, на одном и том же языке, для одного и того же МК имеет разный листинг, в зависимости от применяемого компилятора? oleg110592, завтра посмотрю, дома некогда. Ivanoff-iv, спасибо, хекс хорошо, хотя бы для контроля, но я специально не стал просить его сразу, попрактиковаться сам хотел. Пока не отбрасываю это желание. |
Автор: | scorpi_0n [ Вт июн 27, 2017 14:31:58 ] |
Заголовок сообщения: | Re: Сигнализация авто с датчиком удара |
Цитата: Объясните в двух словах, если можно, почему одна и та же программа, на одном и том же языке, для одного и того же МК имеет разный листинг, в зависимости от применяемого компилятора? Потому что разные компиляторы. Это же очевидно. |
Автор: | zzaj [ Вт июн 27, 2017 14:49:55 ] |
Заголовок сообщения: | Re: Сигнализация авто с датчиком удара |
Я программирование изучал в ВУЗе 30 лет назад поверхностно, теперь забыл то, что и знал. Наивно предполагал, что есть язык программирования, не важно какого уровня, со своими правилами и есть программа-компилятор, к-я переводит эту программу в машинный код по предустановленным из библиотек параметрам - по типу МК. Оказалось - все сложнее. |
Автор: | Ivanoff-iv [ Вт июн 27, 2017 15:47:15 ] | ||
Заголовок сообщения: | Re: Сигнализация авто с датчиком удара | ||
скорее всего т.к. там дополнительные библиотеки подключаются - отличия могут быть при их использовании. я сейчас попробовал собрать проект "от фонаря", а потом весь С файл туда перенёс и тоже нагрёб непонятных ошибок особенно в тех местах где работал автоматический генератор кода (преднастройки). потому выкладываю весь созданный проект.
|
Автор: | zzaj [ Чт июн 29, 2017 10:25:10 ] |
Заголовок сообщения: | Re: Сигнализация авто с датчиком удара |
C помощью AVR STUDIO 4 скомпилировалось от oleg110592 нормально, без ошибок, но в протеусе не заработало, хекс от Ivanoff-iv работает нормально. Но сам протеус у меня корявый оказался - все время вылетает с ошибкой на 3х разных компах. Надо переставить. Начал с программой разбираться. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |