Перейти к содержанию
    

ilnur655

Участник
  • Постов

    13
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о ilnur655

  • День рождения 31.05.1988

Информация

  • Город
    Array
  1. С гипертерминалом не получилось, т.к. перед передачей данных необходимо посылать команды. на гипертеринале послать их не смог :( А не может ли проблема быть в драйвере виртуального ком-порта, т.к. на XP все работает отменно. В программе происходит несколько операций открытия/закрытия ком-порта (createfile(), установка параметров DCB, получение/отправка байтов). Есть ли какое-нибудь отличие работы API функции в системах XP и win 7?
  2. Здравствуйте. Не кто не сталкивался ли с такой проблемой: Есть устройство на основе микроконтроллера с интерфейсом usb pic18f2550, передающий/принимающий данные по протоколу xmodem через виртуальный com-порт, интерфейсная программа написана на Delphi 7. На XP все работает отлично, но на win 7 x32 в процессе обмене данными программа подвисает и обмене не происходит. Установил последний драйвер с сайта microchip. В чем может быть проблема?
  3. AVR910 не опознается в X

    Здравствуйте. Пожалуйста помогите решить проблему. На днях спаял usb программатор AVR910 prottoss. Прошил микроконтроллер с помощью ponyprog, нормально. А система не определяет программатор (неизвестное устройство). В чем может быть проблема? Спасибо.
  4. Здравствуйте. Помогите решить проблему. Сначала стоял квартус 2 8.0 после он был удален и был установлен Quartus 2 9.1 Web Edition При Компиляции проекта на квартусе выходит ошибка: Warning: FLEXlm software error: Invalid (inconsistent) license key The license-key and data for the feature do not match. This usually happens when a license file has been altered Feature: quartus License path: C:\Altera\license.dat FLEXlm error: -8,523 For further information, refer to the FLEXlm End User Manual, available at "www.macrovision.com". Error: Current license file does not support the EP2C20F484C7 device Error: Quartus II Fitter was unsuccessful. 1 error, 1 warning Error: Peak virtual memory: 148 megabytes Error: Processing ended: Fri Dec 17 13:46:38 2010 Error: Elapsed time: 00:00:00 Error: Total CPU time (on all processors): 00:00:00 Error: Quartus II Full Compilation was unsuccessful. 3 errors, 2 warnings
  5. Спасибо, я действительно убрал галочку на распечатку bottom components.
  6. Здравствуйте. Подскажите пожалуйста решение проблемы. Развел плату в Altium Winter 2009. Для экономии места некоторые компоненты перевел в bottom слой (2ой клик на компоненте -> Слой: Bottom layer ) Распечатал Top слой все норма. А bottom слой распечатывается без пинов компонент, есть переходные отверстия и дорожки. Почему? И что сделать что бы распечатались и пины элементов? Спасибо за ранее!
  7. Для меня главными критериями являются наличие SPI, USART, внеш. прерываний INT больше 3шт., внеш. прерывания PCINT больше 16 шт., таймеры 16/8 бит, остальные параметры важной роли не играют. Температура до 150град.
  8. Здравствуйте. Подскажите как выбрать высокотемпературный микроконтроллер AVR. Какие модели предпочтительней?
  9. Проблема распознавания уровня сигнала на входе PCINT0. Надо определить время (по таймеру1) нахождения сигнала на высоком уровне, и выводить значения по USART через определенное время (таймер2). Почему при прерывании число задних и передних франтов сильно отличается? Это приводит к неверным результатам. Микроконтроллер ATmega644P Код программы: #include <avr/io.h> #include <avr/interrupt.h> #define check_num_pin0 (1<<PINA0) #define check_pinA PINA unsigned long counterA; unsigned long T1_0,T2_0; void USART_Init() // Initializing USART { UBRR0 = 0x33; /* Enable receiver and transmitter */ UCSR0B = (1<<RXEN0)|(1<<TXEN0); /* Set frame format: 8data, 1stop bit */ UCSR0C = (1<<UCSZ01)|(1<<UCSZ00); } void USART_Transmit( char data ) { /* Wait for empty transmit buffer */ while ( !(UCSR0A & (1<<UDRE0)) ); /* Put data into buffer, sends the data */ UDR0 = data; } void TIMER2_Init() // Initializing TIMER2 { ASSR=(1<<AS2); OCR2A=0x20; TCCR2B=(1<<CS22)|(1<<CS21)|(1<<CS20); TIMSK2=(1<<OCIE2A); } void TIMER1_Init() { TCNT1=0; TCCR1B=(1<<CS12); } void Interrupt_Extern() { PCICR=(1<<PCIE0); PCMSK0=(1<<PCINT0); } int main() { PORTA=(1<<PORTA0); counterA=0; T1_0=0; T2_0=0; USART_Init(); TIMER2_Init(); Interrupt_Extern(); sei(); while(1); } ISR(TIMER2_COMPA_vect) { cli(); if (check_num_pin0 & check_pinA) { T2_0=TCNT1; counterA+=(T2_0-T1_0); } TCCR2B=(0<<CS22)|(0<<CS21)|(0<<CS20); // выключение таймера2 TCCR1B=0; // выключение таймера1 TCNT1=0; USART_Transmit(counterA>>16); // вывод данных USART_Transmit(counterA>>8); USART_Transmit(counterA); counterA=0; T1_0=0; T2_0=0; TCNT2=0; TCCR2B=(1<<CS22)|(1<<CS21)|(1<<CS20); // Включение таймера2 TIMER1_Init(); // Включение таймера1 PCIFR=0; // Обнуление флагов прерывания PCINT sei(); } ISR(PCINT0_vect) { cli(); if (check_num_pin0 & check_pinA) // Высокий уровень { T1_0=TCNT1; } else // Низкий уровень { T2_0=TCNT1; counterA+=(T2_0-T1_0); } PCIFR=0; sei(); }
  10. Привет Всем! Пожалуйста подскажите марки согласующих трансформаторов 1:1 на 900-1200МГц. Лучше если они достаточно распространены, то есть можно купить с минимальными проблемами. А также согласующие трансформаторы 8:1 до 450МГц.
  11. Переписал код на ассемблере работает корректно. Что неправильно написал на С?
  12. mega644P Происходит бесконечно долгий опрос вывода PD6, если 1 то инкрементируетя counter1, иначе counter0. Подтяжка на PD6 есть. Каждые 2 сек значение выводится через usart. Даже если все время на PD6 стоит 1 значение counter1 периодически меняется сильно (в старших разрядах), в чем может быть проблема? #include <avr/io.h> #include <avr/interrupt.h> #define check_num_pin (1<<PIND6) #define check_pin PIND unsigned long counter1; unsigned long counter0; void USART_Init() // Initializing USART { UBRR0 = 0x33; /* Enable receiver and transmitter */ UCSR0B = (1<<RXEN0)|(1<<TXEN0); /* Set frame format: 8data, 1stop bit */ UCSR0C = (1<<UCSZ01)|(1<<UCSZ00); } void USART_Transmit( char data ) { /* Wait for empty transmit buffer */ while ( !(UCSR0A & (1<<UDRE0)) ); /* Put data into buffer, sends the data */ UDR0 = data; } void TIMER2_Init() // Initializing TIMER1 { ASSR=(1<<AS2); TCCR2A=(1<<WGM21); TCCR2B=(1<<CS22)|(1<<CS21)|(1<<CS20); OCR2A=0x40; TIMSK2=(1<<OCIE2A); } int main() { counter1=0; counter0=0; TIMER2_Init(); USART_Init(); PORTD=(1<<PORTD6); sei(); while(1) { if (check_num_pin & check_pin) { counter1++; } else { counter0++; } } } ISR(TIMER2_COMPA_vect) { TCCR2B=0; USART_Transmit(counter1); USART_Transmit(counter1>>8); USART_Transmit(counter1>>16); USART_Transmit(counter1>>24); counter1=0; counter0=0; TCCR2B=(1<<CS22)|(1<<CS21)|(1<<CS20); }
×
×
  • Создать...