[C11] Thông báo buổi học ngày 19/10

messier

Ban Chủ Nhiệm
Ngày mai các em đi học bình thường nhé. Mai là ngày học cuối đồng thời sẽ thông báo đề thi cuối khóa. Các em nhớ đi học đầy đủ. Thời gian và địa điểm vẫn như cũ nhé. :D
 

41304256

Trứng gà
Tình hình là hồi sáng e copy code của bạn kia về nhưng chạy ko được, khi chạy thì biến 'k' ko nhận giá trị nhập từ Console window :5cool_sweat: ko bít tại sao???????, mặc dù em đã chỉnh lại giá trị cổng COM đúng (máy của bạn hồi sáng nhận là COM4, máy e là COM3)

Code C#
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.IO.Ports;
 
namespace GUI_test_1_19102014
{
    class Program
    {
        static void Main(string[] args)
        {
            string x;
            SerialPort Com1 = new SerialPort();
            Com1.PortName = "COM3";
            Com1.BaudRate = 9600;
            Com1.Open();
            while (true)
            {
                x = Console.ReadLine();
                if (x == "exit")
                {
                    break;
                }
                Com1.Write(x);
            }
        }
    }
}
Code CCS
Code:
#include <msp430.h>
#include "uart.h"
#include "STE2007.h"
 
/*
* main.c
*/
 
int main(void) {
    WDTCTL = WDTPW | WDTHOLD;    // Stop watchdog timer
    char k;
    P1DIR = BIT0 + BIT6;
    uart_init();
    while (1)
    {
        k = uart_getc();
 
        if (k == 'A')
        {
            P1OUT |= BIT0;
        }
        if (k == 'B')
        {
            P1OUT |= BIT6;
        }
        if (k == 'a')
        {
            P1OUT &= BIT0;
        }
        if (k == 'b')
        {
            P1OUT &= BIT6;
        }
    }
    return 0;
}
 

Vũ Long

Thành Viên PIF
Mình thấy code mình viết hơi sai sai chỗ a và b đó. Thêm dấu ! mới đúng chứ ta. Không hiểu sao hồi sáng lại chạy được.
Về nhà thì chạy lại bằng kit của mình thì fail. Không get được k luôn (nên code đúng hay sai cũng vậy). COM3 đã sửa rồi. Không biết do Kit hay do Chip hay do code nữa. Mong mấy anh giải đáp?!
 

Vũ Long

Thành Viên PIF
Đã test bằng Virtual Serial Port và ok anh ạ. Chắc code CCS có vấn đề gì đó (em đã sữa thành ~BIT0 hay !BIT0 rồi cũng không được). Không nhận được giá trị k.
 

41304256

Trứng gà
Đã test okay. Hóa ra là do quên set DCO.:D
Code CCS:
Code:
#include <msp430.h>
#include "uart.h"
 
 
/*
* main.c
*/
 
int main(void) {
    WDTCTL = WDTPW | WDTHOLD;    // Stop watchdog timer
    BCSCTL1 = CALBC1_1MHZ;                //Set DCO to 1Mhz
    DCOCTL = CALDCO_1MHZ;                //Set DCO to 1Mhz
 
    uart_init();                        //Initialize the UART connection
 
    P1DIR |= BIT0 + BIT6;
    char k;
    while(1)
    {
    k=uart_getc();
    if (k == 'A')
        {
        P1OUT |= BIT0;
        }
    if (k == 'B')
        {
            P1OUT |= BIT6;
        }
    if (k == 'a')
        {
        P1OUT &= BIT0;
        }
    if (k == 'b')
        {
        P1OUT &= BIT6;
        }
    }
}
 

Vũ Long

Thành Viên PIF
Đã test okay. Hóa ra là do quên set DCO.:D
Code CCS:
Code:
#include <msp430.h>
#include "uart.h"
 
 
/*
* main.c
*/
 
int main(void) {
    WDTCTL = WDTPW | WDTHOLD;    // Stop watchdog timer
    BCSCTL1 = CALBC1_1MHZ;                //Set DCO to 1Mhz
    DCOCTL = CALDCO_1MHZ;                //Set DCO to 1Mhz
 
    uart_init();                        //Initialize the UART connection
 
    P1DIR |= BIT0 + BIT6;
    char k;
    while(1)
    {
    k=uart_getc();
    if (k == 'A')
        {
        P1OUT |= BIT0;
        }
    if (k == 'B')
        {
            P1OUT |= BIT6;
        }
    if (k == 'a')
        {
        P1OUT &= BIT0;
        }
    if (k == 'b')
        {
        P1OUT &= BIT6;
        }
    }
}
Thêm dấu ~ trước BIT0 và BIT6 ở phần tắt đèn nữa bạn ơi. Nếu không sẽ bị ngược đó ^^
 
Top