ARV 1 23 апреля, 2013 Опубликовано 23 апреля, 2013 · Жалоба как мне в С++ указать определенный пин определенного порта?смотрите здесь: http://arv.radioliga.com/content/category/6/33/49/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
David_Ali 0 23 апреля, 2013 Опубликовано 23 апреля, 2013 · Жалоба смотрите здесь: http://arv.radioliga.com/content/category/6/33/49/ не нашел там ничего. (( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ARV 1 23 апреля, 2013 Опубликовано 23 апреля, 2013 · Жалоба не нашел там ничего. ((как это?! а если вот так: http://arv.radioliga.com/content/view/187/49/ и вот так: http://arv.radioliga.com/content/view/188/49/ ???? так лучше? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
David_Ali 0 23 апреля, 2013 Опубликовано 23 апреля, 2013 (изменено) · Жалоба как это?! а если вот так: http://arv.radioliga.com/content/view/187/49/ и вот так: http://arv.radioliga.com/content/view/188/49/ ???? так лучше? Спасибо вам огромнооое )) но я решил задачу проще )) Оb00000001 + калькулятор бин хекс = if(data=='A') { PORTB=0x1; Изменено 23 апреля, 2013 пользователем David_Ali Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ARV 1 23 апреля, 2013 Опубликовано 23 апреля, 2013 · Жалоба если ваше спасибо я получил за то, что вынудил вас воспользоваться калькулятором, - то лучше не надо. если я добился именно этого, то оказал вам медвежью услугу, и вряд ли заслужил благодарности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
David_Ali 0 23 апреля, 2013 Опубликовано 23 апреля, 2013 · Жалоба если ваше спасибо я получил за то, что вынудил вас воспользоваться калькулятором, - то лучше не надо. если я добился именно этого, то оказал вам медвежью услугу, и вряд ли заслужил благодарности. да нет, что вы ) я бы не додумался до калькулятора если бы не прочитал там все, и вобще там инфа полезная. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ARV 1 23 апреля, 2013 Опубликовано 23 апреля, 2013 · Жалоба я втайне надеялся, что мысль о калькуляторе у прочитавшего мои заметки вообще не возникнет :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
David_Ali 0 23 апреля, 2013 Опубликовано 23 апреля, 2013 · Жалоба я втайне надеялся, что мысль о калькуляторе у прочитавшего мои заметки вообще не возникнет :) Но почему же? Разве это не то? Просто мой компилятор не стал понимать некоторые вещи из тех примеров вот я взял калькулятор. :-) Читаю про Industrial Ethernet про скада прочитал. И не вижу там места для разработчика.. Это все готовые системы для пользования. А вот создать свой плк это уже почетное дело :-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
David_Ali 0 23 апреля, 2013 Опубликовано 23 апреля, 2013 (изменено) · Жалоба Ребята, ну кто нибудь скажите мне почему на меге8 вместо нормальной работы, он работает в режиме эха?? на меге16 все ОК. а тут что не пошлю все возвращает. вот код ---> #include <avr/io.h> #include <avr/interrupt.h> #define FOSC 8000000L//Тактовая частота #define BAUD 9600L //Скорость порта #define MYUBRR FOSC/16/BAUD-1 void USART_Transmit( unsigned char data ); void USART_Init( unsigned int ubrr); //Обработка прерывания чтения USART ISR(USART_RXC_vect) { int b; b = UDR; USART_Transmit( B ); //Отправляем то, что получили } //Инициализация модуля USART void USART_Init( unsigned int ubrr) { //Задаем скорость работы USART UBRRH = (unsigned char)(ubrr>>8); UBRRL = (unsigned char)ubrr; UCSRB=(1<<RXEN)|( 1<<TXEN); UCSRB |= (1<<RXCIE); UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0); } //Функция отправки данных void USART_Transmit( unsigned char data ) { while ( !(UCSRA & (1<<UDRE)) ); //Ожидание опустошения буфера приема UDR = data; //Начало передачи данных } int main(void) { unsigned char data; PORTB=0x00; DDRB=0xFF; PORTD=0x00; DDRD=0x00; USART_Init (MYUBRR); sei(); while(1)//вечный цикл { if(data=='A') { PORTB=0xFF; } if(data=='B') { PORTB=0x00; } } } P.S. и как пользоваться Codevision? Попробовал на нем писать у меня не получается НЕХ файл, а только асм. Изменено 23 апреля, 2013 пользователем David_Ali Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 23 апреля, 2013 Опубликовано 23 апреля, 2013 · Жалоба Ребята, ну кто нибудь скажите мне почему на меге8 вместо нормальной работы, он работает в режиме эха?? Интересно, а как оно должно работать если у вас в коде //Обработка прерывания чтения USART ISR(USART_RXC_vect) { int b; b = UDR; USART_Transmit( B ); //Отправляем то, что получили } каждый принятый байт обратно отсылается? И кроме того, функция main странная: int main(void) { unsigned char data; PORTB=0x00; DDRB=0xFF; PORTD=0x00; DDRD=0x00; USART_Init (MYUBRR); sei(); while(1)//вечный цикл { if(data=='A') { PORTB=0xFF; } if(data=='B') { PORTB=0x00; } } } В цикле while проверяется переменная data, которая есть локальная переменная функции. Её значение не может изменится и наверное оптимизатор все эти проверки выкинет. Сделайте так: volatile unsigned char data; //Обработка прерывания чтения USART ISR(USART_RXC_vect) { //int b; // зачем тут int? data = UDR; USART_Transmit( data); //Отправляем то, что получили } void main () { // инициализация while (1) { if (data=='A') { // и так далее } } } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
David_Ali 0 23 апреля, 2013 Опубликовано 23 апреля, 2013 · Жалоба Интересно, а как оно должно работать если у вас в коде Спасибо сейчас проверю, ну просто на меге 16 все работает, просто там пару изменений чисто по датащиту МК Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
David_Ali 0 24 апреля, 2013 Опубликовано 24 апреля, 2013 · Жалоба не вышло опять ничего.. он все в режиме эха.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 24 апреля, 2013 Опубликовано 24 апреля, 2013 · Жалоба он все в режиме эха.. Эхо у вас по программе и должно быть. Если хотите чтобы пропало эхо, то закоментируйте строку с USART_Transmit. Или не работает остальная программа? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
David_Ali 0 24 апреля, 2013 Опубликовано 24 апреля, 2013 · Жалоба Эхо у вас по программе и должно быть. Если хотите чтобы пропало эхо, то закоментируйте строку с USART_Transmit. Или не работает остальная программа? осталное не работает, на атмеге 16 работает, а когда переделываю для 8ки не работает, от чего может быть? МК тоже разнве брал, все 8ки одно и тоже делают ( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 24 апреля, 2013 Опубликовано 24 апреля, 2013 · Жалоба МК тоже разнве брал, все 8ки одно и тоже делают ( Как у вас сейчас программа выглядит? Эхо идёт правильно? В симуляторе не пробовали запускать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться