реклама на сайте
подробности

 
 
> Uart для Silabs C8051F320, проблемы с настройкой и запуском
Антон Андреевич
сообщение May 21 2008, 10:39
Сообщение #1





Группа: Новичок
Сообщений: 8
Регистрация: 18-02-08
Пользователь №: 35 149



Вроде все включил, вроде даже работает, бит окончания передачи выставляется через равные промежутки времени - только на ножке ТХ глухо.
Причем как на кейловском симуляторе, так и на контроллере.

Прилепляю асм-файл программы.
Если влом смотреть де я напарил, можете прислать рабочий свой,только асм, пожалуйста.

Сообщение отредактировал Антон Андреевич - May 21 2008, 10:43
Прикрепленные файлы
Прикрепленный файл  uartv2.txt ( 21.98 килобайт ) Кол-во скачиваний: 236
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SashaGubov
сообщение Aug 19 2009, 07:14
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 13-05-06
Из: Киев
Пользователь №: 17 060



может не в тему, но та же проблема с C8051F350, в конфигураторе задал все, но на ножках глухо в Keile? Помогите!

CODE
#include "C8051F350.h"

void Timer_Init(){
TMOD = 0x20;
TH1 = 0x96;
}
void UART_Init(){
SCON0 = 0x10;
}
void Port_IO_Init(){
// P0.0 - Unassigned, Open-Drain, Digital // P0.1 - Unassigned, Open-Drain, Digital // P0.2 - Unassigned, Open-Drain, Digital
// P0.3 - Unassigned, Open-Drain, Digital // P0.4 - TX0 (UART0), Open-Drain, Digital // P0.5 - RX0 (UART0), Open-Drain, Digital
// P0.6 - Unassigned, Open-Drain, Digital // P0.7 - Unassigned, Open-Drain, Digital
// P1.0 - Unassigned, Open-Drain, Digital // P1.1 - Unassigned, Open-Drain, Digital // P1.2 - Unassigned, Open-Drain, Digital
// P1.3 - Unassigned, Open-Drain, Digital // P1.4 - Unassigned, Open-Drain, Digital // P1.5 - Unassigned, Open-Drain, Digital
// P1.6 - Unassigned, Open-Drain, Digital // P1.7 - Unassigned, Open-Drain, Digital
XBR0 = 0x01;
XBR1 = 0x40;
}
void Oscillator_Init(){
OSCICN = 0x83;
}

// Initialization function for device,
// Call Init_Device() from your main program
void Init_Device(void){
Timer_Init();
UART_Init();
Port_IO_Init();
Oscillator_Init();
}
void Main(){
char ch='A';
Init_Device();

while (1){
// P0++;
SBUF0=ch++;
}
}


Сообщение отредактировал SashaGubov - Aug 19 2009, 07:15
Go to the top of the page
 
+Quote Post
barabek
сообщение Aug 21 2009, 02:15
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(SashaGubov @ Aug 19 2009, 18:14) *
может не в тему, но та же проблема с C8051F350, в конфигураторе задал все, но на ножках глухо в Keile? Помогите!

CODE
#include "C8051F350.h"


// Initialization function for device,
// Call Init_Device() from your main program
void Init_Device(void){
Timer_Init();
UART_Init();
Port_IO_Init();
Oscillator_Init();

}

А что-то у Вас в коде нет отключения watchdog? Просто не привели или его действительно нет? Дело в том, что в Silabs МК он включается автоматически после сброса. Первым делом, если что-то не идет смотрите регистр сброса, от чего был последний сброс.
И второе.
Код
while (1){
            // P0++;
          SBUF0=ch++;    
  }

Вы дождитесь, когда байт передастся, а потом только следущий передавайте. Хотя бы полингом TI флага.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 13:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.22777 секунд с 7
ELECTRONIX ©2004-2016