Project : Version : Date : 17.05.2005 Author : Freeware, for evaluation and non-commercial use only Company : Comments:
Chip type : ATmega128 Program type : Application Clock frequency : 16,000000 MHz Memory model : Small External SRAM size : 0 Data Stack size : 1024 *****************************************************/
// Get a character from the USART1 Receiver #pragma used+ char getchar1(void) { char status,data; while (1) { while (((status=UCSR1A) & RX_COMPLETE)==0); data=UDR1; if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0) return data; }; } #pragma used-
// Write a character to the USART1 Transmitter #pragma used+ void putchar1(char c) { while ((UCSR1A & DATA_REGISTER_EMPTY)==0); UDR1=c; } #pragma used-
// Declare your global variables here
void main(void) { // Declare your local variables here
// Timer/Counter 3 initialization // Clock source: System Clock // Clock value: Timer 3 Stopped // Mode: Normal top=FFFFh // Noise Canceler: Off // Input Capture on Falling Edge // OC3A output: Discon. // OC3B output: Discon. // OC3C output: Discon. // Timer 3 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off // Compare C Match Interrupt: Off TCCR3A=0x00; TCCR3B=0x00; TCNT3H=0x00; TCNT3L=0x00; ICR3H=0x00; ICR3L=0x00; OCR3AH=0x00; OCR3AL=0x00; OCR3BH=0x00; OCR3BL=0x00; OCR3CH=0x00; OCR3CL=0x00;
// External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off // INT3: Off // INT4: Off // INT5: Off // INT6: Off // INT7: Off EICRA=0x00; EICRB=0x00; EIMSK=0x00;
// USART1 initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART1 Receiver: On // USART1 Transmitter: On // USART1 Mode: Asynchronous // USART1 Baud rate: 56000 UCSR1A=0x00; UCSR1B=0x18; UCSR1C=0x06; UBRR1H=0x00; UBRR1L=0x11;
// Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00;
while (1) { // Place your code here
}; }
Компилируется великолепно, но при попытке исполнения в протеусе - говорит такую лабуду: SIMULATION LOG ============== Design: C:\hobby\test128.DSN Doc. no.: <NONE> Revision: <NONE> Author: <NONE> Created: 25/04/05 Modified: 17/05/05
Зарегистрирован: 25 янв 2005, 07:53 Сообщения: 158 Откуда: со стула в г.Николаеве
я еще до УСАРТа не дошел.. но возник интересный вопрос, как в ПРОТЕУСе посмотреть содержимое переменной? в WatchWindow можно выбрать только адресс, но как узнать адрес этой переменной, если я компилил из CodeVisiona ?
_________________ я не волшебник, я даже на него не учусь
Ну, переменные кладутся в память в порядке создания - отсчитай нужное смещение и будет тебе адрес! А те что автоматические - попадают в стек - их уже не поймаешь...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения