|
|
  |
Нужен учитель, Если кто-то согласен стать он-лайн учителем, прошу помочь. |
|
|
|
Mar 3 2013, 16:24
|
Профессионал
    
Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936

|
Цитата(David_Ali @ Mar 3 2013, 18:07)  главное найти человека который может помочь мне научится программировать МК. Освоив базовые навыки я разберусь даьше что и как делать. просто в моем случае обучение сиим навыкам будет проходить на реальных задачах. что думаю больше плюс чем минус. Надеюсь найдется дбрый человек который согласится стать сенсейем )) Никто не поможет, потому что не реально "научить разговаривать ребенка через интернет" и никто не захочет "учить разговаривать чужого ребенка". Самое реальное (если есть желание) это учиться самому, начиная с азов электроники, благо на это вся литература есть, не то что раньше. Спросите любого программиста.
|
|
|
|
|
Mar 3 2013, 20:29
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Цитата(David_Ali @ Mar 3 2013, 18:19)  Уважаемый, я не из кружка юных техников, по проффесии я инженер, работал и рабтаю по профилю уже немало Я ни в коей мере не имел намерения как-то Вас обидеть. Просто я высказал конкретные вопросы, ответы на которые позволят не объяснять то, что Вы и сами знаете, и наоборот- разжевать то, что пока что Вы не проходили. Для начала, поставьте конкретную задачу и разделите ее на несколько частей, например для простейших задач: 1. Постановка задачи 2. реализация функционирующего макета 3. Переработка и обновление техзадания по результатам испытаний макета 4. реализация опытного образца 5. испытания опытного образца 6. Документация 7. Внедрение. Если у Вас есть пункт 1- замечательно. в п.2 Вы можете использовать все что угодно, хоть лап-топ с андуриной в качестве исполнительного механизма. про выбор процессора можно и не думать до третьего пункта плана. P.S. А почему Вы так отрицательно к юным техникам относитесь? Лично я из них, и журнал мне родители выписывали, и на станцию ЮТ ходил, и на коллективной радиостанции там же зависал- и ни чуточки не стесняюсь этой страницы своей жизни  P.P.S. И присоединяюсь к мнению,, что свой контроллер не делайте, берите готовое. Это позволит сэкономить несколько лет. Свое имеет смысл делать только в качестве довесков к покупному: исполнительные устройства, входные преобразователи.... Кстати, чем сам Ардуино не нравится? Судя по количеству и диапазону примеров применения- вполне себе железяка для мелкого самиздата. сейчас что-то в этом формате на STM32 вроде бы кто-то делает(или начинает делать).
|
|
|
|
|
Mar 3 2013, 20:39
|

Знающий
   
Группа: Свой
Сообщений: 630
Регистрация: 26-07-06
Из: Саратов
Пользователь №: 19 097

|
Цитата(David_Ali @ Mar 1 2013, 13:42)  Здравствуйте, мн по долгу службы надо освоить программирование микроконтролееров(желательно авр и пик, но авр тоже будет достаточно), если есть знающие люди, огромная просьба помочь в етом нелегком деле. Заранее спасибо всем отписавшимся. David_Ali, по мере продвижения в своем самообучении, задавайте вопросы в форум. Скорее всего они будут конкретными, поэтому больше вероятности, что Вам ответят на них.
|
|
|
|
|
Mar 5 2013, 04:19
|

Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581

|
David_Ali, даю бесплатный совет: посмотрите этот форум, найдите по сообщениям того, кто с вашей точки зрения вам наиболее по душе, и начинайте его осторожно долбить по почте, через личные сообщения и т.п. общедоступные каналы. дескать, я глубоко проникся уважением к вашему авторитету в области программирования микроконтроллеров, и скромно прошу вас ответить на вопрос новичка - и задаете вопрос. потом второй вопрос. потом третий... и т.д. с первым "кандидатом в сенсэи" не получится - обращайтесь ко второму (или ко многим сразу, но через приватный канал общения)... как правило, большинство здесь находящихся а) люди достаточно высокого интеллекта, а значит, более-менее культурные, т.е. сразу не пошлют; б) страдающие частично манией величия или избытком знаний, который необходимо на кого-то излить; в) сочувствующие начинающим. найдите подход к жертве - и вам будут помогать задаром, главное, не перегните палку  я сам пару раз попадал на эту удочку
--------------------
Я бы взял частями... но мне надо сразу.
|
|
|
|
|
Mar 5 2013, 08:26
|

Участник

Группа: Участник
Сообщений: 63
Регистрация: 28-02-13
Пользователь №: 75 833

|
Цитата(Ruslan1 @ Mar 4 2013, 00:29)  Я ни в коей мере не имел намерения как-то Вас обидеть. Просто я высказал конкретные вопросы, ответы на которые позволят не объяснять то, что Вы и сами знаете, и наоборот- разжевать то, что пока что Вы не проходили. Для начала, поставьте конкретную задачу и разделите ее на несколько частей, например для простейших задач: 1. Постановка задачи 2. реализация функционирующего макета 3. Переработка и обновление техзадания по результатам испытаний макета 4. реализация опытного образца 5. испытания опытного образца 6. Документация 7. Внедрение. Если у Вас есть пункт 1- замечательно. в п.2 Вы можете использовать все что угодно, хоть лап-топ с андуриной в качестве исполнительного механизма. про выбор процессора можно и не думать до третьего пункта плана. P.S. А почему Вы так отрицательно к юным техникам относитесь? Лично я из них, и журнал мне родители выписывали, и на станцию ЮТ ходил, и на коллективной радиостанции там же зависал- и ни чуточки не стесняюсь этой страницы своей жизни  P.P.S. И присоединяюсь к мнению,, что свой контроллер не делайте, берите готовое. Это позволит сэкономить несколько лет. Свое имеет смысл делать только в качестве довесков к покупному: исполнительные устройства, входные преобразователи.... Кстати, чем сам Ардуино не нравится? Судя по количеству и диапазону примеров применения- вполне себе железяка для мелкого самиздата. сейчас что-то в этом формате на STM32 вроде бы кто-то делает(или начинает делать). Я не отрицательно отношусь к "юным техникам" ) просто хочу сказать что я уже порядком выше юного техника. Кстати уже прочитал книгу Ревича Юрия, написал и скомпилировал программку, весело, атмегу8 в сочетании с релейным модулем, которая попеременно включает три реле, с заданным промежутком времени, как раз пригодилось. теперь вожусь с UART. чего то не получается. Цитата(ARV @ Mar 5 2013, 08:19)  David_Ali, даю бесплатный совет: посмотрите этот форум, найдите по сообщениям того, кто с вашей точки зрения вам наиболее по душе, и начинайте его осторожно долбить по почте, через личные сообщения и т.п. общедоступные каналы. дескать, я глубоко проникся уважением к вашему авторитету в области программирования микроконтроллеров, и скромно прошу вас ответить на вопрос новичка - и задаете вопрос. потом второй вопрос. потом третий... и т.д. с первым "кандидатом в сенсэи" не получится - обращайтесь ко второму (или ко многим сразу, но через приватный канал общения)... как правило, большинство здесь находящихся а) люди достаточно высокого интеллекта, а значит, более-менее культурные, т.е. сразу не пошлют; б) страдающие частично манией величия или избытком знаний, который необходимо на кого-то излить; в) сочувствующие начинающим. найдите подход к жертве - и вам будут помогать задаром, главное, не перегните палку  я сам пару раз попадал на эту удочку  Спасибо за совет, но назойливость не моя стихия. Я могу по взаимной выгоде как то договориться, если что.. Цитата(Burner @ Mar 4 2013, 03:52)  Ну, чтобы учить, нужно тратить бесценное время. У мну нету. Раньше, когда работы не было, мог.. И то в основном на атмеловском ассемблере. Если есть желание и соображение - почему бы и нет? Только если серьезно заниматься - легко это не будет. Вспомнил кино Куросавы "7 самураев" - "Но у нас нечем платить. Кто согласится работать за еду? - нужно искать голодных самураев"  У меня есть подозрение, что Вы из моторов, по классификации одного"сам себе профессора". Если оно верное - то будет эффективнее работать с кем-то вроде меня. Лично со мной не получится, но такого народу немало. Шоб Вы знали, разделение труда придумали в основном из-за ограниченной емкости моска по данным/алгоритмам. )) а что за классификация? можно ли узнать? Цитата(яман-тау @ Mar 3 2013, 22:03)  Возьмите программируемое реле для простых задач, для распеределенных систем уже ПЛК. Будет легче завязать на верхний уровень при надобности. Самодельные контроллеры применять не рекомендую, подумайте о тех, кто будет обслуживать систему после Вас. На фото пример, к чему могут привести ошибки на объектах. нк на фото предприятие по крупнее, я пока за такие не буду браться, для таких у нас есть плк митсубишивские Цитата(Burner @ Mar 4 2013, 03:52)  Ну, чтобы учить, нужно тратить бесценное время. У мну нету. Раньше, когда работы не было, мог.. И то в основном на атмеловском ассемблере. Если есть желание и соображение - почему бы и нет? Только если серьезно заниматься - легко это не будет. Вспомнил кино Куросавы "7 самураев" - "Но у нас нечем платить. Кто согласится работать за еду? - нужно искать голодных самураев"  У меня есть подозрение, что Вы из моторов, по классификации одного"сам себе профессора". Если оно верное - то будет эффективнее работать с кем-то вроде меня. Лично со мной не получится, но такого народу немало. Шоб Вы знали, разделение труда придумали в основном из-за ограниченной емкости моска по данным/алгоритмам. а на счет времени, я думаю что много его у вас не заберу если будете помогать, посоветуйте литературу, по мере изученя буду описывать задачи поставленные передо мной, и описывать то что не получилось сделать, это займет думаю столько же времени сколько и отписаться тут ) а для аналогии с Куросавой я бы привел цитату из фильма гений дзюдо "Он не умен. Но он серьезно настроен." )) Цитата(Burner @ Mar 4 2013, 03:52)  Ну, чтобы учить, нужно тратить бесценное время. У мну нету. Раньше, когда работы не было, мог.. И то в основном на атмеловском ассемблере. Если есть желание и соображение - почему бы и нет? Только если серьезно заниматься - легко это не будет. Вспомнил кино Куросавы "7 самураев" - "Но у нас нечем платить. Кто согласится работать за еду? - нужно искать голодных самураев"  У меня есть подозрение, что Вы из моторов, по классификации одного"сам себе профессора". Если оно верное - то будет эффективнее работать с кем-то вроде меня. Лично со мной не получится, но такого народу немало. Шоб Вы знали, разделение труда придумали в основном из-за ограниченной емкости моска по данным/алгоритмам. а на счет времени, я думаю что много его у вас не заберу если будете помогать, посоветуйте литературу, по мере изученя буду описывать задачи поставленные передо мной, и описывать то что не получилось сделать, это займет думаю столько же времени сколько и отписаться тут ) а для аналогии с Куросавой я бы привел цитату из фильма гений дзюдо "Он не умен. Но он серьезно настроен." )) Цитата(Iptash @ Mar 3 2013, 20:24)  Никто не поможет, потому что не реально "научить разговаривать ребенка через интернет" и никто не захочет "учить разговаривать чужого ребенка". Самое реальное (если есть желание) это учиться самому, начиная с азов электроники, благо на это вся литература есть, не то что раньше. Спросите любого программиста. а тут я не соглашусь, я выучил программирование именно по интернету, просто в другой области, да и вообще много чего выучил по интернету, и литература на которую вы ссылаетесь тоже из интернета. В наш век через интренет можно купить дом, люди женятся через интернет, о чем вы говорите...
Сообщение отредактировал David_Ali - Mar 5 2013, 07:53
--------------------
Viva la resistance!
|
|
|
|
|
Mar 5 2013, 09:31
|
Гуру
     
Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295

|
Цитата(David_Ali @ Mar 5 2013, 12:26)  теперь вожусь с UART. чего то не получается. Установите себе CodeVision, сгенерируйте базовый проект для вашей Меги с UART и посмотрите, как он сделан: Код /***************************************************** CodeWizardAVR V1.24.8d Professional Clock frequency : 8,000000 MHz *****************************************************/
#include <mega8.h>
#define RXB8 1 #define TXB8 0 #define UPE 2 #define OVR 3 #define FE 4 #define UDRE 5 #define RXC 7
#define FRAMING_ERROR (1<<FE) #define PARITY_ERROR (1<<UPE) #define DATA_OVERRUN (1<<OVR) #define DATA_REGISTER_EMPTY (1<<UDRE) #define RX_COMPLETE (1<<RXC)
// USART Receiver buffer #define RX_BUFFER_SIZE 8 char rx_buffer[RX_BUFFER_SIZE];
#if RX_BUFFER_SIZE<256 unsigned char rx_wr_index,rx_rd_index,rx_counter; #else unsigned int rx_wr_index,rx_rd_index,rx_counter; #endif
// This flag is set on USART Receiver buffer overflow bit rx_buffer_overflow;
// USART Receiver interrupt service routine interrupt [USART_RXC] void usart_rx_isr(void) { char status,data; status=UCSRA; data=UDR; if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0) { rx_buffer[rx_wr_index]=data; if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0; if (++rx_counter == RX_BUFFER_SIZE) { rx_counter=0; rx_buffer_overflow=1; }; }; }
#ifndef _DEBUG_TERMINAL_IO_ // Get a character from the USART Receiver buffer #define _ALTERNATE_GETCHAR_ #pragma used+ char getchar(void) { char data; while (rx_counter==0); data=rx_buffer[rx_rd_index]; if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0; #asm("cli") --rx_counter; #asm("sei") return data; } #pragma used- #endif
// USART Transmitter buffer #define TX_BUFFER_SIZE 8 char tx_buffer[TX_BUFFER_SIZE];
#if TX_BUFFER_SIZE<256 unsigned char tx_wr_index,tx_rd_index,tx_counter; #else unsigned int tx_wr_index,tx_rd_index,tx_counter; #endif
// USART Transmitter interrupt service routine interrupt [USART_TXC] void usart_tx_isr(void) { if (tx_counter) { --tx_counter; UDR=tx_buffer[tx_rd_index]; if (++tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0; }; }
#ifndef _DEBUG_TERMINAL_IO_ // Write a character to the USART Transmitter buffer #define _ALTERNATE_PUTCHAR_ #pragma used+ void putchar(char c) { while (tx_counter == TX_BUFFER_SIZE); #asm("cli") if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0)) { tx_buffer[tx_wr_index]=c; if (++tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0; ++tx_counter; } else UDR=c; #asm("sei") } #pragma used- #endif
// Standard Input/Output functions #include <stdio.h>
// Declare your global variables here
void main(void) { // Declare your local variables here
// Input/Output Ports initialization // Port B initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTB=0x00; DDRB=0xFF;
// Port C initialization // Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTC=0x00; DDRC=0x7F;
// Port D initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=In // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=1 State0=P PORTD=0x03; DDRD=0xFE;
// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped TCCR0=0x00; TCNT0=0x00;
// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;
// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00;
// External Interrupt(s) initialization // INT0: Off // INT1: Off MCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;
// USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud rate: 9600 UCSRA=0x00; UCSRB=0xD8; UCSRC=0x86; UBRRH=0x00; UBRRL=0x33;
// Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00;
// Global enable interrupts #asm("sei")
while (1) { // Place your code here
}; }
|
|
|
|
|
Mar 5 2013, 09:34
|

Участник

Группа: Участник
Сообщений: 63
Регистрация: 28-02-13
Пользователь №: 75 833

|
Вот например, есть датчик инфракрасный уровнемер, принцип его работы я знаю, как с него считывать показания как их посчитать и тд. и тп., но как это будет выглядеть на асмб для авр например, без понятия, ну не то чтобы совсем без без понятия, но конкретно что и куда надо писать, как объяснит МК что это анлоговый сигнал, что при падении там вольтажа в определенной пропорциональности надо выполнить ту или иную функцию. как то наверное надо его отцифровывать, там как я понял есть 10 разрядный канал в атмеге8, значит надо посчитать какие показания он даст при "выборке" и как то программно дать ему понять что с ними делать. одним словом я знаю что ему сказать (микроконтроллеру), но не знаю как сказать ему на его языке
[quote name='kovigor' post='1142961' date='Mar 5 2013, 13:31']Установите себе CodeVision, сгенерируйте базовый проект для вашей Меги с UART и посмотрите, как он сделан:
спасибо, сейчас разберу )
Сообщение отредактировал David_Ali - Mar 5 2013, 10:05
--------------------
Viva la resistance!
|
|
|
|
|
Mar 5 2013, 09:38
|
Гуру
     
Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295

|
Цитата(David_Ali @ Mar 5 2013, 13:34)  Вот например, есть датчик инфракрасный уровнемер, принцип его работы я знаю, как с него считывать показания как их посчитать и тд. и тп., но как это будет выглядеть на асмб для авр например, без понятия, ну не то чтобы совсем без без понятия, но конкретно что и куда надо писать, как объяснит МК что это анлоговый сигнал, что при падении там вольтажа в определенной пропорциональности надо выполнить ту или иную функцию. как то наверное надо его отцифровывать, там как я понял есть 10 разрядный канал в атмеге8, значит надо посчитать какие показания он даст при "выборке" и как то программно дать ему понять что с ними делать. одним словом я знаю что ему сказать (микроконтроллеру), но не знаю как сказать ему на его языке Выход у этого уровнемера аналоговый ? Если да, то нужно задействовать АЦП. Дальше потребуется цифровая обработка сигнала от АЦП, в той или иной форме. Вот в этой обработке основная сложность и есть. И писать, кстати, наверное лучше будет на Си ... P.S. Мой исходник из вашего ответа уберите, а то страничку стало трудно читать ...
|
|
|
|
|
Mar 5 2013, 10:31
|

Участник

Группа: Участник
Сообщений: 63
Регистрация: 28-02-13
Пользователь №: 75 833

|
Цитата(ARV @ Mar 5 2013, 13:53)  или вот для примера мой вариант для не-CodeVision: http://www.simple-devices.ru/articles/7-so...navr-console-io , возможно, это будет даже проще для начала. не могу редактировать ( пропала эта кнопка Цитата(kovigor @ Mar 5 2013, 13:38)  Выход у этого уровнемера аналоговый ? Если да, то нужно задействовать АЦП. Дальше потребуется цифровая обработка сигнала от АЦП, в той или иной форме. Вот в этой обработке основная сложность и есть. И писать, кстати, наверное лучше будет на Си ... P.S. Мой исходник из вашего ответа уберите, а то страничку стало трудно читать ... Да Аналоговый, модель http://www.sharpsma.com/webfm_send/1487 вот такая, почти что. ту которая у меня найти не смог. Цитата(kovigor @ Mar 5 2013, 13:38)  Выход у этого уровнемера аналоговый ? Если да, то нужно задействовать АЦП. Дальше потребуется цифровая обработка сигнала от АЦП, в той или иной форме. Вот в этой обработке основная сложность и есть. И писать, кстати, наверное лучше будет на Си ... P.S. Мой исходник из вашего ответа уберите, а то страничку стало трудно читать ... Я чего то не разобрал где компилировать в codevsion, я авр студио прользовалься до этого. и то для ассемблера.
--------------------
Viva la resistance!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|